在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);
答案 0 :(得分:2)
让我们读你的正则表达式,好吗?
"五组(五个字母/数字后跟连字符)后跟一个字母/数字"
我只计算m
变量中的4个组。所以它失败了。
另外,您在开头附近有A-z
而不是A-Z
。它应该是A-Z
。