嗨,我写了一个正则表达式来匹配这样的模式
"None_123_234"
下面是我的代码
if(this.id.match(/^None_+\d+_+\d+$/))
但这是行不通的。我们可以用其他方式写吗?请有人帮我。
最佳答案
它不起作用,因为它与以下项不匹配:
"None_123_234"
这是因为插入符
^
会断言匹配是从字符串的开头开始的。在这种情况下,字符串的开头是双引号"
。此外,美元符号$
将断言该模式持续到字符串结尾。在这种情况下,字符串的结尾还是双引号"
。这是您提供的正则表达式(
/^None_+\d+_+\d+$/
)的确切说明:在字符串«^»的开头声明位置
按字面意思«无»匹配字符“无”
从字面上匹配字符“ _”«_ +»
一个。在一个无限的时间之间
尽可能多地回馈
根据需要(贪婪)«+»
匹配一位数字0..9«\ d +»
一个。在一个无限的时间之间
尽可能多地回馈
根据需要(贪婪)«+»
从字面上匹配字符“ _”«_ +»
一个。在一个无限的时间之间
尽可能多地回馈
根据需要(贪婪)«+»
匹配一位数字0..9«\ d +»
一个。在一个无限的时间之间
尽可能多地回馈
根据需要(贪婪)«+»
在字符串末尾(或在换行符之前)声明位置
字符串的结尾(如果有的话)«$»
您有两种选择:
您的字符串都不应以
None_
以外的其他开头。或者,您应该更改正则表达式以匹配文本中任何位置的模式,如下所示:
if(this.id.match(/None_+\d+_+\d+/))
关于jquery - if(this.id.match(/^ None _ +\d + _ +\d + $/))的错误是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6492507/