【发布时间】:2013-12-27 07:45:14
【问题描述】:
您好,我在 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');
对 = 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 ')'
我在这里做错了什么?
谢谢
【问题讨论】:
-
Chrome,Mac OS X - 工作。
-
也适用于我的 Chrome、Windows。
-
嗯,当您明确设置变量时,它似乎工作。但是我从元素的属性中获取变量。请参阅我编辑的问题。这对你们有用吗?
-
好的,现在你已经完全改变了问题——$('#myid'); 上的 html 是什么?
-
随着您的更新,请参阅@Adassko 的回答。我认为它会解决它。
标签: javascript jquery regex escaping