我想通过JavaScript创建一个带变量的新RegExp
。但是当我想创建新的lookaround RegExp
:
var xvar = "_on";
var regex = new RegExp("(?<!" + xvar + ")(.gif|.jpg|.png)$");
#=> SyntaxError: Invalid regular expression: /(?<!_on)(.gif|.jpg|.png)$/: Invalid group
我试图逃避Creating regexp with special characters之后的所有特殊字符,然后它可以创建一个新的RegExp,但就像一个字符串,而不是一个环视正则表达式。
/\(\?<!_on\)\(\.gif\|\.jpg\|\.png\)\$/
任何人都可以帮助我吗?
答案 0 :(得分:-2)
我不知道您RegExp
的目标,但量词(...)
会导致此情况出错。例如,使用非捕获括号 (?:...)
。
var regex = new RegExp("(?:<!" + xvar + ")(?:.gif|.jpg|.png)$");
请参阅:Regular Expressions - JavaScript | MDN。
@Alan Moore:你是对的。