close
之前那篇「身份證驗證程式 for PHP (精簡版)」最近有空所以把他改寫Javascript版了,最近Ajax技術很盛行,應該會用到,有需要的網友就引用過去吧!
//************************************** // 台灣身份證檢查簡短版 for Javascript //************************************** function checkTwID(id){ //建立字母分數陣列(A~Z) var city = new Array( 1,10,19,28,37,46,55,64,39,73,82, 2,11, 20,48,29,38,47,56,65,74,83,21, 3,12,30 ) id = id.toUpperCase(); // 使用「正規表達式」檢驗格式 if (id.search(/^[A-Z](1|2)\d{8}$/i) == -1) { alert('基本格式錯誤'); return false; } else { //將字串分割為陣列(IE必需這麼做才不會出錯) id = id.split(''); //計算總分 var total = city[id[0].charCodeAt(0)-65]; for(var i=1; i<=8; i++){ total += eval(id[i]) * (9 - i); } //補上檢查碼(最後一碼) total += eval(id[9]); //檢查比對碼(餘數應為0); return ((total%10 == 0 )); } }
Javascript版的產生器
//*************************** // 台灣身份證產生簡短版 javascript 版 //*************************** function getTwID(){ //建立字母分數陣列(A~Z) var city = new Array( 1,10,19,28,37,46,55,64,39,73,82, 2,11, 20,48,29,38,47,56,65,74,83,21, 3,12,30 ) //建立隨機身份證碼 var id = new Array(); id[0] = String.fromCharCode(Math.floor(Math.random() * (26)) + 65); id[1] = Math.floor(Math.random() * (2)) + 1; for(var i=2; i<9; i++){ id[i] = Math.floor(Math.random() * (9)) + 0; } //計算總分 var total = city[id[0].charCodeAt(0)-65]; for(var i=1; i<=8; i++){ total += eval(id[i]) * (9 - i); } //計算最尾碼 var total_arr = (total+'').split(''); var lastChar = eval(10-total_arr[total_arr.length-1]); var lastChar_arr = (lastChar+'').split(''); //補上最後檢查碼 id[id.length++] = lastChar_arr[lastChar_arr.length-1]; //回傳結果 return id.join(''); }
全站熱搜