2011-11-08 3 views
0

사용자 등록 양식을 갖고 있으며 사용자가 암호를 입력해야합니다. 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

감사합니다. – Jens