在JSFiddle中運行此代碼會導致「l」出現「無問題」,但「m」出現「問題」,即使兩個變量看起來都是相同的格式。 https://jsfiddle.net/zj8mg518/26/任何人都可以解釋爲什麼在這種情況下JS正則表達式失敗?
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);
請注意,在您的正則表達式中的[ - ]'是寫'-'的一個很長的路要走。 –
另請注意,「A-Z」與「A-Z」不同,你的正則表達式的第一部分是不正確的。 –