我看过很多关于这类问题的类似问题,但是他们还没有解决我的问题...
这是我要匹配的字符串:“| 6 [1] |”其中“6”是我要放在正则表达式中的变量。
我试过创建一个(pid是包含数字的变量):
var filter = new RegExp("/\|"+pid+"[\d*\]\|/");
它看起来不起作用..尝试使用chrome console
答案 0 :(得分:6)
从字符串构造正则表达式时,不需要/
分隔符:
var filter = new RegExp("\|"+pid+"[\d*\]\|");
/
标记用于表示解析器的正则表达式文字的开头/结尾,就像"
和'
标记表示字符串的开头/结尾一样文字。在这种情况下,您使用的是字符串文字,因此您不需要regexp文字分隔符。
您的实际正则表达式不起作用,因为:
所以工作代码应该是:
var filter = new RegExp("\\|"+pid+"\\[\\d*\\]\\|");
// ^ ^^ ^ ^ ^ Add in these backslashes