2012-05-09 2 views
4

5 자리 우편 번호의 유효성을 검사 할 때 다음 정규식을 사용하고 있습니다. 하지만 작동하지 않습니다.자바 정규식 우편 번호 확인 문제

var zipcode_regex = /[\d]{5,5}/; 
if (zipcode_regex.test($.trim($('#zipcode').val())) == false) 
alert('invalid zipcode'); 

또한 코드 스 니펫에서 jQuery도 사용하고 있습니다.

도와주세요 ..

+1

*. 무슨 일이 일어나고 어떻게 될 것으로 예상됩니까? 몇 가지 예제 입력과 출력을 제공해주십시오. –

답변

6

문자열의 어딘가에 하위 문자열이있는 경우 정규 표현식도 일치합니다. 당신이 유효성을 검사 할 경우 "에만 정확히 5 자리 숫자를, 아무것도"당신은 당신의 정규식 anchor 할 필요가 없습니다 :

var zipcode_regex = /^\d{5}$/; 
if (zipcode_regex.test($.trim($('#zipcode').val())) == false) 
    alert('invalid zipcode'); 

을 그리고 당신은 더 쉽게 얻을 수 있습니다 :하지만 *를 작동하지

if (!(/^\s*\d{5}\s*$/.test($('#zipcode').val()))) { 
    alert('invalid zipcode'); 
} 
+0

감사의 말 Tim .. 코드가 잘 작동했습니다 :) –

1

간단히 /^\d{5}$/를 사용합니다.

본문은 30 자 이상이어야합니다. 당신은 21을 입력했습니다

+0

차이점은 무엇이며 왜 도움이되는지 설명해 주시겠습니까? –

+0

아, 방금 정규식을 단순화했습니다. 아마도 코멘트 섹션에 작성 했어야합니다. 하지만 OP의 문제는이 정규식과 관련이 있다고는 생각하지 않습니다.이 정규식은 정확히 5 자리와 정확히 일치합니다. 뭔가 자기 때문일 수도 있습니다. – neevek

+0

글쎄, 우리는 OP의 문제가 뭔지 모르겠다. 그러나 나는 네가 옳다고 생각한다. 표현식에'^'와'$'를 붙여야합니다. 그렇지 않으면'\ d {5}'는 모든 문자열을 ** ** 적어도 5 자리 숫자와 일치시킵니다. 그것은 내가 목표로 한 것입니다.) –