JavaScript RegEx元素匹配

时间:2008-09-18 11:02:59

标签: javascript regex

我正在尝试使用'container1$container2$chkChecked'的正则表达式匹配名称为'.+\$chkChecked'的元素,但是当元素名称如上所述时,我没有得到我期望的匹配。我做错了什么?

5 个答案:

答案 0 :(得分:3)

string.match( /[$]chkChecked$/ ) 

或者,您可以尝试

string.match( /[^a-zA-Z0-9]chkChecked/ ) 

(另外,请确保在正则表达式周围使用//,否则您可能会使用字符串文字进行匹配。如果没有更大的代码段,则不太明显。)

答案 1 :(得分:3)

我的猜测,通过使用引号,你做了类似

的事情
re = new RegExp('.+\$chkChecked');

这将无法工作,因为js在其字符串解释中利用\作为转义,因此它永远不会进入正则表达式解释器

而不是你想要的

re = new RegExp('.+\\$chkChecked');

答案 2 :(得分:2)

有两个级别的转义:一个是首次解析代码时(例如,如果你想在字符串中包含'),另一个在regexp引擎中。因此,在\s之前需要两个$才能使正则表达式引擎不将其视为特殊字符。

答案 3 :(得分:0)

它看起来应该有效。

有一个很好的Javascript Regex Tester,也说匹配。

答案 4 :(得分:0)

  
    

Steven Noble:

  
     

这将无法工作,因为js在其字符串解释中利用\作为转义,因此它永远不会进入正则表达式解释器

我打算使用\作为转义,因为我真的在元素名称中寻找$。

相关问题