这是我的正则表达,我相信给了我麻烦:
JavaScript的:
theregex = /\$?\{(\d+)\}/g;
哪个输出:
Uncaught SyntaxError: Invalid regular expression: /$?\{(\d+)\}/: Nothing to repeat.
我已经读过需要更多反斜杠以逃避特殊字符 - 这会改变模式吗?
我正在使用regex101来帮助 - 它告诉我上面的正则表达式是有效的。显然有些东西认为它不是,而且我对正则表达式看不太熟悉。
修改 这是整个代码块。
JavaScript的:
foo: function(element, rule) {
var message = this.defaultMessage(element, rule.method),
theregex = /\$?\{(\d+)\}/g;
if (typeof message === "function") {
message = message.call(this, rule.parameters, element);
} else if (theregex.test(message)) {
message = $.validator.format(message.replace(theregex, "{$1}"), rule.parameters);
}
this.errorList.push({
message: message,
element: element
});
this.errorMap[element.name] = message;
this.submitted[element.name] = message;
}
...
答案 0 :(得分:1)
我有同样的错误,在我的情况下是:
var nameToReplaceGloble = /nameToReplace/g;
但是我通过连接字符串来解决它:
var nameToReplaceGloble = "/"+nameToReplace+"/g";
答案 1 :(得分:0)
我注意到您在示例代码中使用了这种表示法:"{$1}"
,假设您正在尝试匹配此表达式。你的正则表达式应该是这样的:
\{\$?(\d+)\}
含义:
var theregex = /\{\$?(\d+)\}/g;
免责声明:此表达式和示例中的表达式在我的Chrome上运行良好。如果您仍然遇到任何错误,请提供有关浏览器的详细信息。
答案 2 :(得分:0)