2012-02-10 2 views
0

다음은 내가 시도한 것입니다 ... 입력 값이 8보다 작은 지 여부 만 확인하면 작동하지만 확인하지 못합니다 최소한 1 자의 문자와 1 자릿수를 포함합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까 ? =/입력에 최소 8 자, 1 자 및 최소 1 자의 문자가 포함되어 있는지 확인하십시오.

$(document).ready(function() { 

var jVal = { 
    'passWord' : function() { 

     $('body').append('<div id="nameInfo" class="info"></div>'); 

     var nameInfo = $('#nameInfo'); 
     var ele = $('#password'); 
     var pos = ele.offset(); 
     ra = /^[A-Za-z]+$/; 
     re = /^[0-9]+$/; 

     nameInfo.css({ 
      top: pos.top - 3, 
      left: pos.left + ele.width() + 15 
     }); 

     if (ele.val().length < 8 & re.test(ele.value) & ra.test(ele.value)) { 
      jVal.errors = true; 
      nameInfo.removeClass('correct').addClass('error').html('&larr; too short').show(); 
      ele.removeClass('normal').addClass('wrong'); 
     } 

     else { 
      nameInfo.removeClass('error').addClass('correct').html('&radic;').show(); 
      ele.removeClass('wrong').addClass('normal'); 
     } 
    } 

} 
$('#password').change(jVal.passWord); 
}); 

답변

2

당신은 할 하나의 정규 표현식을 사용할 수있는 모든 :

/^(?=.*\d.*)(?=.*[a-z].*)\w{8,}$/i 

처음 두 개는 숫자, 전체 문자열의 AZ의 문자를 모두 확인하고 마지막 조각이 적어도 8의 보장 문자. 원하는 경우 특수 문자를 허용하도록 마지막 \w.으로 변경할 수 있습니다.

+0

이것은 완벽하게 작동했습니다. 고맙습니다. – JFFF

6

ra 체크 암호 문자 완전히했을 경우. re은 비밀번호가 완전하게 이루어 졌는지 확인합니다. 상호 배타적이므로 사실 일 수 없습니다.

대신 ra = /[a-z]/i; re = /[0-9]/;을 사용하십시오.

편집 : 또한 jQuery를 사용하고 있으므로 ele.val()이 아니라 ele.value으로 테스트해야합니다.

관련 문제