JavaScript 带变量的复杂正则表达式

3

我正在使用这个工具构建一个正则表达式:http://www.gethifi.com/tools/regex

我发现以下的正则表达式适用于我,例如,如果我想匹配 $aazz[AB]

var regex = /[\+\=\-\*\^\\]\$aazz\[AB\]/g; 

我已经阅读了有关Javascript中RegEx构造函数的其他帖子,但是却无法使以下内容正常工作:

var preToken = "[\+\=\-\*\^\\]";    
var toFind = "\$aazz\[AB\]";

var stringToReplace = "/" + preToken + toFind + "/";

var regex = new RegExp(stringToReplace, "g");

这里是 jsbin 的链接:http://jsbin.com/ifeday/3/edit

谢谢

1个回答

4

在从字符串创建正则表达式时,您需要两次转义反斜杠。

\ becomes \\
\\ becomes \\\\

因此,在字符类中,不需要转义所有内容,您可以尝试以下内容:
var preToken = "[+=\\-*^\\\\]"; 
var toFind = "azz\\[A\\]";

此外,您正则表达式的字符串源不需要用/包围,但我在您的jsBin中看到您已经纠正了这一点。

使用这些变量声明更新您的jsBin,它应该可以工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接