Javascript Regex:用变量创建一个新的lookbehind正则表达式?

时间:2013-08-26 06:56:06

标签: javascript regex regex-lookarounds

我想通过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\)\$/

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:-2)

我不知道您RegExp的目标,但量词(...)会导致此情况出错。例如,使用非捕获括号 (?:...)

var regex = new RegExp("(?:<!" + xvar + ")(?:.gif|.jpg|.png)$");

请参阅:Regular Expressions - JavaScript | MDN

@Alan Moore:你是对的。