JavaScript RegEx元素匹配
时间:2020-03-06 14:20:47 来源:igfitidea点击:
我正在尝试使用正则表达式'。+ \ $ chkChecked'来匹配名称为''container1 $ container2 $ chkChecked'`的元素,但是我没有获得我期望的匹配项如前所述。我究竟做错了什么?
解决方案
尝试
string.match( /[$]chkChecked$/ )
或者,我们可以尝试
string.match( /[^a-zA-Z0-9]chkChecked/ )
(另外,请确保在正则表达式周围使用//
,否则可能使用字符串文字进行匹配。如果没有较大的代码段,这是不明显的。)
看起来应该可以使用。
有一个很好的Javascript Regex Tester,它也可以匹配。
我的猜测是,通过使用引号,我们是否做了类似的事情
re = new RegExp('.+$chkChecked');
这是行不通的,因为js在其字符串解释中利用了\作为转义符,因此它永远不会进入regex解释器
相反,你想要
re = new RegExp('.+\$chkChecked');
Steven Noble:
这是行不通的,因为js在其字符串解释中利用了\作为转义符,因此它永远不会进入regex解释器
我打算将\用作转义符,因为我确实在元素名称中寻找$。
转义有两种级别:一种是在第一次解析代码时(例如,如果我们想在字符串中包含一个''),另一种是在regexp引擎中。因此,在$之前需要两个
\ s`,以使正则表达式引擎不将其视为特殊字符。