正则表达式在Firefox中工作但在Chrome中无效

时间:2014-08-22 13:42:44

标签: javascript regex

我正在使用一个只允许数字,字母,逗号,下划线和连字符的正则表达式:

var test = "ABCD_3_8.csv";
var checkFileNameValidity = false;

try {
    var re = /^[a-zA-Z0-9._-]+$/g;
    var match;
    while (match = re.exec(test)) {
        var resultText = match[1] || match[2];
        checkFileNameValidity = true;
    }
} catch (e) {
    alert(e);
}

if (checkFileNameValidity == false) {
    alert("Invalid File Name");
    return;
}

此代码在Firefox中运行良好,但在Chrome中运行不正常。为什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

它不应该在你有这个正则表达式的任何地方工作:

var re = /^[a-zA-Z0-9._-]+$/g; // same as /^[\w.-]+$/g

然后您在var resultText = match[1] || match[2];

中使用了2个已捕获的群组

即使你的正则表达式中没有。