JavaScript正则表达式元素匹配

JavaScript正则表达式元素匹配,javascript,regex,Javascript,Regex,我正在尝试使用“+\$chkChecked”的正则表达式匹配名为“container1$container2$chkChecked”的元素,但当元素名如所述时,我没有得到预期的匹配。我做错了什么?试试看 string.match( /[$]chkChecked$/ ) 或者,你可以试试 string.match( /[^a-zA-Z0-9]chkChecked/ ) 另外,确保在正则表达式中使用//,否则可能会使用字符串文本进行匹配。如果没有较大的代码段,则不明显 string.matc

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

试试看

string.match( /[$]chkChecked$/ ) 
或者,你可以试试

string.match( /[^a-zA-Z0-9]chkChecked/ ) 
另外,确保在正则表达式中使用//,否则可能会使用字符串文本进行匹配。如果没有较大的代码段,则不明显

string.match( /[$]chkChecked$/ ) 
或者,你可以试试

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

另外,确保在正则表达式中使用//,否则可能会使用字符串文本进行匹配。不明显,如果没有更大的代码段,它看起来应该可以工作


有一个很好的例子也表明它是匹配的。

它看起来应该能工作


有一个很好的例子也表明它是匹配的。

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

re = new RegExp('.+\$chkChecked');
这将不起作用,因为js在其字符串解释中利用\作为转义,所以它永远不会进入正则表达式解释器

相反,你想要

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

我猜,通过你引用的话,你做了类似的事情

re = new RegExp('.+\$chkChecked');
这将不起作用,因为js在其字符串解释中利用\作为转义,所以它永远不会进入正则表达式解释器

相反,你想要

re = new RegExp('.+\\$chkChecked');
史蒂文·诺布尔:

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

我打算使用\作为转义,因为我实际上在元素名中查找$

史蒂文·诺布尔:

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


我打算使用\作为转义,因为我实际上是在元素名中查找$。

有两个转义级别:一个是在第一次解析代码时,例如,如果您想在字符串中包含一个',第二个是在regexp引擎中。因此,在$之前需要两个\s,才能使regexp引擎不将其视为特殊字符。

有两个转义级别:一个是在第一次解析代码时,例如,如果希望在字符串中包含一个',另一个是在regexp引擎中。因此,在$之前需要两个\s,才能使regexp引擎不将其视为特殊字符。

那么,您期望得到什么?您期望得到什么?