3 回答

TA貢獻1909條經(jīng)驗 獲得超7個贊
也許可以使用單個正則表達式,但這使得很難向用戶提供他們不遵循的規(guī)則的反饋。像這樣的更傳統(tǒng)的方法會為您提供反饋,您可以在UI中使用該反饋來告訴用戶未滿足什么pwd規(guī)則:
function checkPwd(str) {
if (str.length < 6) {
return("too_short");
} else if (str.length > 50) {
return("too_long");
} else if (str.search(/\d/) == -1) {
return("no_num");
} else if (str.search(/[a-zA-Z]/) == -1) {
return("no_letter");
} else if (str.search(/[^a-zA-Z0-9\!\@\#\$\%\^\&\*\(\)\_\+]/) != -1) {
return("bad_char");
}
return("ok");
}

TA貢獻1777條經(jīng)驗 獲得超10個贊
滿足以下(通用)密碼要求的更優(yōu)雅,更完善的正則表達式是:
^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d^a-zA-Z0-9].{5,50}$
這里的優(yōu)雅之處在于您不必對 $ @#等符號進行硬編碼。要接受所有符號,您只是在說:“也接受所有非字母數(shù)字字符和數(shù)字?!?正則表達式的最后部分{5,50}可以輕松更改,并與字符的最小和最大數(shù)目相對應:在此特定示例中,直到5個字符為止,正則表達式返回不匹配的字符(即,至少需要6個字符才能進行驗證)。同樣,在50個字符之后,它也會返回不匹配項。
添加回答
舉報