我在使用正则表达式的所有版本的 Internet Explorer 中都遇到问题。我收到错误“正则表达式语法无效”。它在包括 Microsoft Edge 在内的所有其他浏览器中运行良好。在 IE 中调试时,我注意到它从正则表达式的开头删除了“/”。为什么要这样做?
var pattern = /^\d{10}$/;
function isPattern(input, pattern) {
if (typeof pattern === "string") {
pattern = "^" + pattern + "$";
}
var rePattern = new RegExp( pattern, "i" );
return (typeof input === "string" && rePattern.test( input ));
}
我怀疑该错误是因为在资源管理器中它从正则表达式中删除了第一个“/”。
请您参考如下方法:
请删除"i"
来自var rePattern = new RegExp( pattern, "i" );
实际上,您应该将字符串传递给正则表达式的构造函数,或者使用正则表达式文字语法,但不能同时使用两者。
var pattern = /^\d{10}$/i
或
var pattern = new RegExp("^\d{10}$","i")
请参阅此处 - https://stackoverflow.com/questions/16721057/ie8-is-not-recognizing-my-regular-expression