嗨,我写了一个正则表达式来匹配这样的模式

"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/

10-10 11:24