在RegEx中使用带转义字符的变量

时间:2013-12-10 00:10:42

标签: javascript jquery regex escaping

您好我在JavaScript中有以下正则表达式:

var re = new RegExp("\\[(\\d{8})([,|;]\\s*\\d{8})*\\]", "g");

当我将变量设置为等于第一个和最后一个括号(带有转义字符)时,我从元素的属性中获取它并将这些变量传递给RegExp,如下所示:



HTML:

div id="myid" left="\\[" right="\\]"/>

JavaScript的:

bs = $("#myid");
left =  bs.attr('left');
right = bs.attr('right');

var re = new RegExp(left + "(\\d{8})([,|;]\\s*\\d{8})*" + right, "g");

我收到错误消息:

Uncaught SyntaxError: Invalid regular expression: /\\[(\d{8})([,|;]\s*\d{8})*\\]/: Unmatched ')' 

我在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

您不需要escape您的escape登录html属性

仅在javascript的字符串中需要这些。

只需替换

\\[

单一

\[

在您的属性中。