您好我写了一个正则表达式来匹配像
这样的模式"None_123_234"
以下是我的代码
if(this.id.match(/^None_+\d+_+\d+$/))
但它不起作用。我们可以用其他任何方式编写它吗?请有人帮助我。
答案 0 :(得分:4)
它不起作用,因为它不符合:
"None_123_234"
这是因为插入符号^
,它将断言匹配是从字符串的开头完成的。在这种情况下,字符串的开头是双引号"
。此外,美元符号$
将断言该模式一直持续到字符串结束。在这种情况下,字符串的结尾也是双引号"
。
这是你给出的正则表达式(/^None_+\d+_+\d+$/
)的确切解释:
- 在字符串«^»
的开头处断言位置- 将字符“无”字面匹配为“无”
将字符“_”按字面匹配«_ +»
一个。在一次和无限次之间, 尽可能多次回馈 根据需要(贪婪)«+»
匹配单个数字0..9«\ d +»
一个。在一次和无限次之间, 尽可能多次回馈 根据需要(贪婪)«+»
将字符“_”按字面匹配«_ +»
一个。在一次和无限次之间, 尽可能多次回馈 根据需要(贪婪)«+»
匹配单个数字0..9«\ d +»
一个。在一次和无限次之间, 尽可能多次回馈 根据需要(贪婪)«+»
- 断言字符串末尾的位置(或换行符之前的位置) 字符串的结尾,如果有的话)«$»
醇>
None_
答案 1 :(得分:1)
很难从你给出的代码中说出问题是什么,但我的猜测是它与正则表达式无关。
正则表达式本身可以与None_123_234
匹配。
我的猜测是你遇到了this.id
的问题。正如我所说的,如果没有看到更多的代码,很难确定,因为我们不知道在你给我们的一行代码的上下文中this
是什么样的。
但是,我认为你已经将jquery放在标签中作为线索,因为你给我们的代码根本没有JQuery。
如果this
是DOM元素,那么它将具有.id
属性。但是,如果它是一个JQuery元素,那么它将不会 - this.id
将被定义。
如果是这种情况,您可以使用JQuery .attr()
方法来获取ID,如下所示:
if(this.attr('id').match(/^None_+\d+_+\d+$/))
希望有所帮助。