針對填寫者在表單頁面填寫身分證欄位後,立即驗證該欄位數值是否合理!
填寫頁面(簡易):
身分證字號:<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設計自己也設計別人