0

在我的流星应用程序中使用 Mongodb 我正在使用正则表达式进行查询以检查名称或代码是否已在数据库中可用。在我的字符串中,所有数字和特殊字符都包括在内。但是当正则表达式++在字符串中找到一个特殊字符时,它会给出错误

Exception while invoking method
'createSubject' SyntaxError: Invalid regular expression: /^C++$/: Nothing to repeat

I20140109-13:15:21.277(5.5)?在新的正则表达式 ()

我的代码是

var code_regex = new RegExp(["^",code,"$"].join(""),"i");
var curr = Meteor.curri.findOne({code: code_regex});

它与字符串一起工作正常,但我尝试C++作为代码并产生上述错误。

4

1 回答 1

1

您需要转义您的字符,因为C++是正则表达式的一部分,+以便查找先前表达式的更多匹配项。

来自:如何使用 javascript 转义正则表达式特殊字符?

RegExp.escape = function(text) {
   return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
};

var code_regex = new RegExp(["^",
                             RegExp.escape(code),
                             "$"].join(""),"i");
于 2014-01-09T08:15:15.867 回答