2013年5月8日 星期三

Javascript-表單欄位驗證之身分證字號

說明:
        針對填寫者在表單頁面填寫身分證欄位後,立即驗證該欄位數值是否合理!

填寫頁面(簡易):
身分證字號:<input name="IDNumber" type="text" value="" />

驗證程式碼:
<script>
 function checkID(id) {
    tab = "ABCDEFGHJKLMNPQRSTUVXYWZIO";                     
    A1 = new Array (1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3 );
    A2 = new Array (0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 );
    Mx = new Array (9,8,7,6,5,4,3,2,1,1);

    if ( id.length != 10 ) return false;
    i = tab.indexOf( id.charAt(0) );

    if ( i == -1 ) return false;
    sum = A1[i] + A2[i]*9;

    for ( i=1; i<10; i++ ) {
      v = parseInt( id.charAt(i) );
      if ( isNaN(v) ) return false;
      sum = sum + v * Mx[i];
    }
    if ( sum % 10 != 0 ) return false;
      return true;
  }       
  
  var input = document.getElementsByName("IDNumber");
  input[0].onblur = function(){
    if(this.value.length ==10){
       var chval=checkID(this.value.toUpperCase());
       if(chval==false){
          alert("請再確認身分證字號!");
          this.value="";
       }
    }else if(this.value.length <9 || this.value.length >10){
          alert("請再確認身分證字號!");
          this.value="";
    }
  }
</script>


參考資料:
javascript 身份證字號驗證,by設計自己也設計別人

沒有留言:

張貼留言