在做活動時候,常常需要身份證的驗證,網站上有需多 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;
}

arrow
arrow
    全站熱搜

    jaichang2008 發表在 痞客邦 留言(4) 人氣()