在这种情况下,任何人都可以解释为什么JS正则表达式失败了吗?

时间:2016-01-08 19:27:15

标签: javascript regex

在JSFiddle中运行此代码导致“l”的“没问题”,但“m”的“问题”,即使两个变量看起来都是相同的格式。 https://jsfiddle.net/zj8mg518/26/

    var errString;
    var l = "JLF5J-383Z3-QQKWR-JEN3T-39NUT-3";
    var m = "12345-12345-12345-12345-A";

    function Check_License_Key_Format(license) {
        var regexLicense = new RegExp("^([A-za-z0-9]{5}[-]){5}[A-Za-z0-9]$");
        return regexLicense.test(license);
    }

    if (Check_License_Key_Format(l) == false)
        errString = "problem";
    else
        errString = "no problem";            
    alert(errString);

      if (Check_License_Key_Format(m) == false)
        errString = "problem";
    else
        errString = "no problem";
    alert(errString);

1 个答案:

答案 0 :(得分:2)

让我们读你的正则表达式,好吗?

"五组(五个字母/数字后跟连字符)后跟一个字母/数字"

我只计算m变量中的4个组。所以它失败了。

另外,您在开头附近有A-z而不是A-Z。它应该是A-Z