2011-11-08 7 views
0

私はユーザー登録フォームを持っており、ユーザーはパスワードを入力する必要があります。私は8文字、数字と大文字などを含む必要があるようないくつかのパスワードルールを持っています。オンザフライでパスワードルールを確認する

入力時にユーザーがパスワードの基準を満たしているかどうかを表示し、小さなポップアップなどで表示できますか?

現在、私は彼がこれらの基準(のような8つの文字、1アッパーケースと1桁)を満たした場合にのみ、目盛りを示してコードをしました

<td> 
      <table><tr> 
       <td> 
       <input type="password" name="password" 
       size="25" tabindex="<%= get_next_tabindex(@content_data) %>" 
       value="<%= @content_data['password'] %>" 
       onKeyUp="validatePassword(this)"> 
      </td> 
      <td id="password_Valid_Image" style="display:none"> 
      <%= image_tag(
       "/assets/20/tick-icon.png", 
       :alt => "") %> 
      </td> 
       </tr> 
      </table> 
      </td> 

var is_Password_Valid = false; 
var lower_Case = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; 
var upper_Case = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] 
var numbers = [1,2,3,4,5,6,7,8,9,0] 

function validatePassword(password_Input){ 
    is_Password_Valid = true; 

    if(password_Input.value.length < 8){ 
    is_Password_Valid = false; 
    drawPasswordValid(is_Password_Valid); 
    return; 
    } 

    var found_Chars = 0; 

    for(var i=0; i<lower_Case.length; i++){ 
     if(password_Input.value.indexOf(lower_Case[i]) > -1){ 
     found_Chars++; 
     } 
    } 

    if(found_Chars == 0){ 
    is_Password_Valid = false; 
    drawPasswordValid(is_Password_Valid); 
    return; 
    } 

    found_Chars = 0; 

    for(var i=0; i<upper_Case.length; i++){ 
     if(password_Input.value.indexOf(upper_Case[i]) > -1){ 
     found_Chars++; 
     } 
    } 

    if(found_Chars == 0){ 
    is_Password_Valid = false; 
    drawPasswordValid(is_Password_Valid); 
    return; 
    } 

    found_Chars = 0; 

    for(var i=0; i<numbers.length; i++){ 
     if(password_Input.value.indexOf(numbers[i]) > -1){ 
     found_Chars++; 
     } 
    } 

    if(found_Chars == 0){ 
    is_Password_Valid = false; 
    drawPasswordValid(is_Password_Valid); 
    return; 
    } 

    drawPasswordValid(is_Password_Valid); 

    } 
+0

は、それがポップアップを取得するには、ユーザーのために少し迷惑ではないでしょう彼らが入力しているときに、またはあなたが送信時にポップアップウィンドウをしたいですか? –

+0

それはそうではありません。あなたがこのページをクリックすると、このページをクリックしてください。eBay登録ページとplzをクリックしてパスワードを入力してください https://scgi.ebay.com/ws/eBayISAPI.dll?RegisterEnterInfo 私はそのようなものが欲しいです – Jens

答えて

3

上を見てみましょう既存のjQueryプラグイン:10 Password Strength Meter Scripts For A Better Registration Interface

function check(str) { 

    var length = new RegExp('^[\\d\\w]{6,}$'); 
    var digit = new RegExp('[\\d]+'); 
    var upper = new RegExp('[A-Z]+'); 

    return length.test(str) && digit.test(str) && upper.test(str); 

} 

alert(check('asasasA77')); 

コード:http://jsfiddle.net/wYDej/1/

+0

コメントありがとうございます。私は何か別のものが欲しい、私はパスワードの強さのメーターを望んでいない。私は彼が6文字、1大文字と1桁を入力したように、ユーザーがパスワードルールの基準を満たしてほしい。 – Jens

+0

サンプルを確認してください。 3つの正規表現で必要なものを完成させました。私は知らないが、おそらくそれは単一の表現で行うことができる。 – Samich

1

あなたは強度計を探していないと、あなただけのユーザーにいくつかの情報を表示したい場合は、jQueryのバブルポップアップをチェックアウト:http://www.vegabit.com/jquery_bubble_popup_v2/

+0

ありがとうBro.Iは見てみる.. – Jens

関連する問題