javascript正则表达式中的变量

时间:2014-02-10 08:39:13

标签: javascript regex

我看过很多关于这类问题的类似问题,但是他们还没有解决我的问题...

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

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

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

它看起来不起作用..尝试使用chrome console

enter image description here

1 个答案:

答案 0 :(得分:6)

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

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

/标记用于表示解析器的正则表达式文字的开头/结尾,就像"'标记表示字符串的开头/结尾一样文字。在这种情况下,您使用的是字符串文字,因此您不需要regexp文字分隔符。

您的实际正则表达式不起作用,因为:

  • 你错过了开场广场上的逃脱角色
  • 在从字符串
  • 构建正则表达式时,您需要转义文字反斜杠

所以工作代码应该是:

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