重複の可能性:
パスワード検証の正規表現
8 ~ 16 文字で、3 つの文字クラス (アルファベットの大文字と小文字、数字、記号) のそれぞれから少なくとも 1 文字を使用します。
私はこのコードを持っていますが、16文字以上書くとうまくいきませんが、有効ではありません。3 つの文字クラスで正常に動作するはずですが、4 で動作します。私の間違いはどこですか??
http://jsbin.com/ugesow/1/edit
<label for="pass">Enter Pass: </label>
<input type="text" id="pass" onkeyup="validate()">
脚本
function validate() {
valor = document.getElementById('pass').value;
if (!(/(?=.{8,16})(?=.*?[^\w\s])(?=.*?[0-9])(?=.*?[A-Z]).*?[a-z].*/.test(valor))) {
document.getElementById('pass').style.backgroundColor = "red";
} else {
document.getElementById('pass').style.backgroundColor = "#adff2f";
}
}