在做活動時候,常常需要身份證的驗證,網站上有需多 code 可以用,但我這個是正確版的。
網路上流傳的,大多是這個版本
tab = "ABCDEFGHJKLMNPQRSTUVWXYZIO"
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);
請注意!紅字的部份是錯的~~
所以住在金門縣(W)、澎湖縣(X)、陽明山管理局(Y)會錯誤,簡單的方式就是修改英文字的順序就好了。
進來看正確的版本吧
歡迎整個複製,加入您的驗證表單吧~~
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;
}
全站熱搜
留言列表