之前那篇「身份證驗證程式 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('');
}
文章標籤
全站熱搜
