我看了很多关于这类问题的类似问题,但他们都没有解决我的问题......
这是我要匹配的字符串:“|6[1]|”其中“6”是我必须放入正则表达式中的变量。
我尝试创建一个(pid 是包含数字的变量):
var filter = new RegExp("/\|"+pid+"[\d*\]\|/");
它看起来不工作..尝试使用 chrome 控制台
最佳答案
当您从字符串构造正则表达式时,您不需要 /
分隔符:
var filter = new RegExp("\|"+pid+"[\d*\]\|");
/
标记用于向解析器表示正则表达式文字的开始/结束,很像 "
和 '
标记表示字符串文字的开始/结束。在这种情况下,您使用的是字符串文字,因此不需要正则表达式文字分隔符。
您的实际正则表达式不起作用,因为:
- 您错过了左方括号中的转义字符
- 从字符串构建正则表达式时需要转义文字反斜杠
所以工作代码应该是:
var filter = new RegExp("\\|"+pid+"\\[\\d*\\]\\|");
// ^ ^^ ^ ^ ^ Add in these backslashes
关于javascript - javascript正则表达式中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21672347/