0

こんにちは私はパスワードフィールドをテストすることを想定しているjavascriptに取り組んでいます。しかし、私はそれを機能させることができないようです。ページの読み込みに問題はありませんが、スクリプトが機能していないようです。これが私がこれまでに書いたものです。大文字と小文字、数字、正規表現をチェックしてほしい。長さは、それぞれが1つあるというだけでは重要ではありません。これが私がこれまでに書いたものです。

更新:スクリプトを書くためのより簡単な方法を見つけました。また、パスワードフィールドが間違っている場合はいつでもアラートを受け取ることができます。しかし、ドキュメントボタンのクリックを実行する場所で実際のステートメントを機能させることはできません。

var str= passwordFieldForm;
    var patt=/[a-z]/g;
    var patt2 = /[A-Z]/g; 
    var patt3 = /[0-9]/g; 
    var patt4 = /[~\!@#\$%\^&*_\-\+=`\|\\(\)\{\}\[\]:;"'<>,\.\?\/]/g; 

    var result=patt.test(str);
    var result2=patt2.test(str);
    var result3=patt3.test(str);
    var result4=patt4.test(str);

    if (!result)
      alert("Needs a lowercase letter");

    if (!result2)
      alert("Needs a Uppercase Letter")

    if (!result3)
      alert("Needs a Number.")

    if (!result4)
      alert("Needs a special character")


    if (result) && (result2) && (result3) && (result4) == true
      document.getElementById("kioskform:broswerPasswordSubmit").click();
4

3 に答える 3

2

これはあなたが望むものに少し近いかもしれません、私はそれをテストしていませんが、それはより正しい方向にあるはずです:

function test(password)
{
    var patt1 = /[a-z]/g;
    var patt2 = /[A-Z]/g;
    var patt3 = /[0-9]/g;
    var patt4 = /[~\!@#\$%\^&*_\-\+=`\|\\(\)\{\}\[\]:;"'<>,\.\?\/]/g;

    if (!patt1.test(password)) {
        return ("You need a lowercase letter.");
    }

    if (!patt2.test(password)) {
        return ("You need an uppercaseletter.");
    }

    if (!patt3.test(password)) {
        return ("You need a number.");
    }

    if (!patt4.test(password)) {
        return ("You need to use a one of the following characters '~!@#$%^&*_-+=`|\(){}[;.");
    }
}
于 2012-09-28T14:34:55.140 に答える
1

この行に問題があります:

return ("you need to use a one of the following characters '~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/'.")

引用符とその中のスラッシュをエスケープする必要があります。

return ("you need to use a one of the following characters '~!@#$%^&*_-+=`|\\(){}[]:;\"'<>,.?/'.")

また、比較の代わりに、==の代わりにを使用します。また、タブに頼るのではなく、ifステートメントの内容に常に{}を使用する習慣を身に付けてください。=true"true"

于 2012-09-28T14:22:04.930 に答える
1

前回の正規表現テストで、これらの文字のいくつかをエスケープする必要があります。

 var patt4 = /[~!@#$%\^&\*_-\+=`\|\(\)\{\}\[\]\:;"'<>,\.\?\/]/g;

疑わしい場合は、バックスラッシュで文字をエスケープします\。エスケープする必要のないキャラクターをエスケープしても何も起こりません。

于 2012-09-28T14:25:28.147 に答える