我想比较两个字符串,但我对Brackets有点问题。 我想要寻找的字符串如下所示:
CAPPL:LOCAL.L_hk [1] .vorlauftemp_soll
引用那些括号似乎毫无用处。
我用这段代码尝试了它
var regex = new RegExp("CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll","gi");
var value = "CAPPL:LOCAL.L_hk[1].vorlauftemp_soll";
regex.test(value);
有人可以帮助我吗?
答案 0 :(得分:5)
没用,因为你正在使用字符串。你也需要逃避反斜杠:
var regex = new RegExp("CAPPL:LOCAL.L_hk\\[1\\].vorlauftemp_soll","gi");
或使用正则表达式文字:
var regex = /CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll/gi
JavaScript中会忽略未知的转义字符,因此"\["
会生成与"["
相同的字符串。
答案 1 :(得分:2)
在value
中,您有(1)
而不是[1]
。因此,如果您希望正则表达式匹配而它不匹配,那就是因为它。
另一个问题是你在表达式中使用""
。要在JavaScript中编写正则表达式,请使用/.../g
代替"..."
。
您可能还想在表达式中转义点。 .
表示“任何不是换行符的字符”。另一方面,您希望点按字面匹配:\.
。
答案 2 :(得分:1)
您正在使用字符串生成正则表达式(其中[
是可以使用\
转义的特殊字符)(其中\
是特殊字符)。< / p>
var regex = /CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll/gi;