2012-02-18 6 views
1

자바 스크립트에 익숙하지 않아서 사용자가 제출 버튼을 클릭 할 때 잘못된 형식으로 우편 번호를 입력하면이 양식에 경고 메시지가 표시되도록 잠시 노력했습니다. 지금까지 모든 필드의 유효성을 검사하는 모든 함수를 하나씩 두었습니다. 이름을 사용하여 함수 내부의 필드를 참조합니다. 여기 JavaScript를 사용하여이 양식의 우편 번호를 어떻게 검증합니까?

var g=document.forms["myform"]["postcode"].value; 
if (g==null || g=="") 
{ 
    alert("Please enter your Post CODE"); 
    return false; 
} 
var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9] 
[a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/; 
if(regPostcode.test(postcode) == false) 
{ 
    alert("That Post Code is incorrect"); 
    return false; 
} 

은 정규식 당신이 목표로하는 국가에 대한 정확하다는 것을 가정 할

<div class=”field_container”><label>Post Code</label><input type=”text” name="postcode" id="postcode" /></div> 
+1

가능한 중복 [영국 우편 번호 정규식 (종합) (http://stackoverflow.com/questions/164979/uk-postcode- 정규식 - 포괄) –

+3

모든 국가에서 우편 형식이 다른 것은 아닙니다. 그래서 모든 Post 코드에서 작동 할 정규식이 없습니다. –

답변

0

를 사용하여 양식 메신저 내부의 특정 필드에 대한 HTML이다 (미안 제대로 들여 쓰기를하지 않은 경우), I '이런 식으로 뭔가를 시도 D :

var g = document.forms["myform"]["postcode"].value; 
var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9] 
    [a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/; 
if (!g) 
{ 
    alert("Please enter your Post CODE"); 
    return false; 
} 
if (!g.match(regPostcode)) 
{ 
    alert("That Post Code is incorrect"); 
    return false; 
} 

@Shiplu 말했듯이, 모든 국가의 포스트 코드에 대한 작동 균일 한 정규식이 없다. 다른 국가에 거주하는 사람들의 양식 제출을 차단해야합니다.

희망이 도움이됩니다.

0

또한, 당신과 같이 간단한 접근성 향상을 추가해야합니다 :

<div class="field_container"> 
    <label for="postcode">Post Code</label> <!-- the "for" attribute should match the "id" attribute of the input it corresponds to --> 
    <input type="text" name="postcode" id="postcode" /> 
</div>