javascript正则表达式中的变量

manuelprojects

我已经看过很多关于此类问题的类似问题,但它们并没有解决我的问题...

这是我必须匹配的字符串:“ | 6 [1] |” 其中“ 6”是我必须放在正则表达式中的变量。

我尝试创建一个(pid是包含数字的变量):

var filter = new RegExp("/\|"+pid+"[\d*\]\|/");

看起来无法正常使用..尝试使用chrome控制台

在此处输入图片说明

詹姆斯·阿拉迪斯(James Allardice)

从字符串构造正则表达式时,不需要/定界符:

var filter = new RegExp("\|"+pid+"[\d*\]\|");

/令牌被用来表示正则表达式文本到语法分析器的开始/结束,很像"'令牌表示一个字符串的开始/结束。在这种情况下,您使用的是字符串文字,因此不需要regexp文字分隔符。

您的实际正则表达式无法正常工作,因为:

  • 您错过了方括号开头的转义字符
  • 从字符串构建正则表达式时,需要转义文字反斜杠

因此,工作代码应为:

var filter = new RegExp("\\|"+pid+"\\[\\d*\\]\\|");
//                       ^         ^^ ^   ^  ^ Add in these backslashes

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章