0

我有一个正则表达式

var p = /\bj[^\b]*?\b/gi;

我需要将“j”设为变量值,但是当我执行以下操作时;-

var p = new RegExp('\\b'+'${0}'+'[^\\b]*?\\b', 'gi');

我得到错误 -

Uncaught SyntaxError: Invalid regular expression: /\b${0}[^\b]*?\b/: Nothing to repeat 

任何帮助表示赞赏。

谢谢

4

3 回答 3

1

我认为您想要以下内容:

var p = new RegExp('\\b'+${0}+'[^\\b]*?\\b', 'gi');

你周围的引号${0}只是用这些字符构造一个字符串,而不是插入变量值。

于 2012-11-14T19:52:25.687 回答
0

像您所做的那样将变量放在引号内'${0}'会导致将其视为字符串。如果您从它周围删除引号,那么它将被视为一个变量。

于 2012-11-14T19:52:12.183 回答
0

对不起,伙计们,我应该更清楚一点,值“{0}”是一个将被替换的标记,而不是一个变量。发生错误是因为“{”和“}”是正则表达式中的特殊字符。

所以改变令牌模式解决了这个问题

var p = new RegExp('\\b'+'%text%'+'[^\\b]*?\\b', 'gi');
于 2012-11-15T10:01:59.410 回答