我有一个正则表达式
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
任何帮助表示赞赏。
谢谢
我有一个正则表达式
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
任何帮助表示赞赏。
谢谢
我认为您想要以下内容:
var p = new RegExp('\\b'+${0}+'[^\\b]*?\\b', 'gi');
你周围的引号${0}
只是用这些字符构造一个字符串,而不是插入变量值。
像您所做的那样将变量放在引号内'${0}'
会导致将其视为字符串。如果您从它周围删除引号,那么它将被视为一个变量。
对不起,伙计们,我应该更清楚一点,值“{0}”是一个将被替换的标记,而不是一个变量。发生错误是因为“{”和“}”是正则表达式中的特殊字符。
所以改变令牌模式解决了这个问题
var p = new RegExp('\\b'+'%text%'+'[^\\b]*?\\b', 'gi');