次のルールでパスワードを検証する必要があります。
- 6~20文字
- 少なくとも 1 つの数字が含まれている必要があります。
- 少なくとも 1 つの文字が含まれている必要があります (大文字と小文字は区別されません)。
- 次の文字を含めることができます: ! @ # $ % & *
次の式は、最後の要件を除くすべてに一致します。最後のものはどうすればいいですか?
((?=.*\d)(?=.*[A-z]).{6,20})
正規表現は次のようになります:-
^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9!@#$%&*]{6,20}$
Javascriptでこれはどうですか:-
function checkPwd(str) {
if (str.length < 6) {
return("too_short");
} else if (str.length > 20) {
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");
}
こちらもチェック