0

登録フォームにパスワード フィールドがあります。以下は、JavaScript 検証のコードです。

if(document.getElementById('txtPassword').value == '' || document.getElementById('txtPassword').value == 'Password' ){
            alert("Please enter Password");
            document.getElementById('txtPassword').focus();
            return false;
        }


      else if (document.getElementById('txtPassword').value.length < 8)
       {
               alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
               return false;
       }


      else if ( (! document.getElementById('txtPassword').value.match(/[a-z]/) ) || (! document.getElementById('txtPassword').value.match(/[A-Z]/) ) ) {
               alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
               return false;
       }


      else if (!document.getElementById('txtPassword').value.match(/\d+/)) {
               alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
               return false;
       }

        else if (document.getElementById('txtPassword').length < 8)
       {
               alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
               return false;
       }

一重引用符を確認する必要があります。ユーザーがパスワード フィールドに一重引用符を入力してヒットすると、「このフィールドには一重引用符を使用しないでください」というエラーが表示されます。

どうやってするか?

4

2 に答える 2

4
else if (document.getElementById('txtPassword').value.indexOf("'") != -1) {
    alert("Avoid single quotes in this field");
    return false;
}

ここに簡単なテストケースがあります。HTML ページを作成し、これを head タグに入れてブラウザで開くと、動作することがわかります。

var value1 = "abc'def";
var value2 = "abcdef";
if(value1.indexOf("'") != -1)
    alert(value1 + " contains a '");
else
    alert(value1 + " does not contain a '");
if(value2.indexOf("'") != -1)
    alert(value2 + " contains a '");
else
    alert(value2 + " does not contain a '");
于 2012-08-04T09:30:25.227 に答える
1

この正規表現をパスワード チェックに使用します

^(?=.*\d)(?=.*[a-zA-Z]).{8,}

現在、上記の正規表現を使用することを避けるために、多くの検証チェックを行っています。

if (! /^(?=.*\d)(?=.*[a-zA-Z]).{8,}/.test(txtPass)) {
    flag = false;
}
else if(txtPass.indexOf("'") != -1) {
    flag = false;
}

if (!flag)
    alert("Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number");

ライブデモを参照

于 2012-08-04T09:42:50.310 に答える