1

パスワード検証スクリプトに取り組んでいます。

次のコードは、数字、大文字および小文字で正常に機能しています。

唯一の問題は、スペースバー キーを押すと、長さが 8 を超え、表示が true を返すことです。

特殊文字のみには使用できません。

$("#password").keyup(function () {
    var validated = true;
    if (this.value.length < 8)
        validated = false;
    if (!/\d/.test(this.value))
        validated = false;
    if (!/[a-z]/.test(this.value))
        validated = false;
    if (!/[A-Z]/.test(this.value))
        validated = false;
    if (!/[@#$%\&^\-\+=!*.?~]/.test(this.value))
        validated = false;
    if (/[^0-9a-zA-Z@#$%^&+=!*,.?~]/.test(this.value))
        validated = false;
    $('#password_strength').text(validated ? "Good" : "Too Weak");
4

1 に答える 1

0

正規表現を使用してパスワード内の記号をチェックする場合、文字の正規表現の意味ではなく、リテラル文字として解釈されるようにエスケープする必要があります。詳細については、以下をチェックすることをお勧めします。

http://www.javascriptkit.com/javatutors/redev2.shtml

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

于 2013-04-18T02:01:15.293 に答える