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

創作者介紹

設計自己也設計別人

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


留言列表 (4)

發表留言
  • EdenChang
  • Hi,
    我想在我的blog中加上中英雙語的功能。
    目前想到是做法是將兩種語言的字串存在陣列中,
    然後透過取代字串,將網頁內容切換成另一種語言。
    不知 javascript 裡怎麼使用 cookie,
    想不出如何將 user 選擇的語系存下來。

    希望高手見文後賜我一點生機 : )
    感恩!感恩!
  • 痞客邦的blog?還是自己寫的部落格?或是Wordpress之類部落格?

    Javascript讀存cookie的文章應該滿多的吧,用Google搜尋一下就好。

    如果你會 asp、php之類的程式語言,建議是在程式裡面比較好。

    jaichang2008 於 2009/11/25 16:58 回覆

  • EdenChang
  • 謝謝回覆!

    我是指痞客邦的 blog,因為這裡不可能用 asp,
    所以只能從 javascript 下手了。
  • 酷哦!似乎是個大工程,完成後,再去參考看看囉。

    jaichang2008 於 2009/11/26 12:49 回覆

  • takesport
  • 謝謝這位大大!
    這段程式我收下來用囉。
    不過有個小問題,英文字母一定要是大寫,不然程式不給驗證通過哩
  • 那只好在submit之前,把小寫轉大寫囉。toUpperCase

    jaichang2008 於 2010/10/09 15:56 回覆

  • 悄悄話
找更多相關文章與討論