IE中

时间:2016-07-01 08:53:58

标签: javascript regex internet-explorer

我在所有版本的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 ));
}

我怀疑错误是因为在资源管理器中它从正则表达式中删除了第一个“/”。

1 个答案:

答案 0 :(得分:1)

请从"i"

中删除var rePattern = new RegExp( pattern, "i" );

实际上,您应该将字符串传递给regexen的构造函数,或者使用正则表达式文字语法,但不能同时使用这两种语法。

var pattern = /^\d{10}$/i 

var pattern = new RegExp("^\d{10}$","i")

请参阅此处 - https://stackoverflow.com/questions/16721057/ie8-is-not-recognizing-my-regular-expression