身份證號碼之js驗證
//驗證身份證號碼
function checkSecondIdcard(idcard) {
idcard = idcard.toString();
//var Errors=new Array("驗證通過!","身份證號碼位數不對!","身份證號碼出生日期超出範圍或含有非法字元!","身份證號碼校驗錯誤!","身份證地區非法!");
var Errors = new Array(true, false, false, false, false);
var area = {
11: "北京",
12: "天津",
13: "河北",
14: "山西",
15: "內蒙古",
21: "遼寧",
22: "吉林",
23: "黑龍江",
31: "上海",
32: "江蘇",
33: "浙江",
34: "安徽",
35: "福建",
36: "江西",
37: "山東",
41: "河南",
42: "湖北",
43: "湖南",
44: "廣東",
45: "廣西",
46: "海南",
50: "重慶",
51: "四川",
52: "貴州",
53: "雲南",
54: "西藏",
61: "陝西",
62: "甘肅",
63: "青海",
64: "寧夏",
65: "新疆",
71: "臺灣",
81: "香港",
82: "澳門",
91: "國外"
}
var idcard, Y, JYM;
var S, M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地區檢驗
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
//身份號碼位數及格式檢驗
switch (idcard.length) {
case 18:
//18 位身份號碼檢測
//出生日期的合法性檢查
//閏年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0 )) {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//閏年出生日期的合法性正規表示式
} else {
ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正規表示式
}
if (ereg.test(idcard)) {//測試出生日期的合法性
//計算校驗位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y, 1);//判斷校驗位
if (M == idcard_array[17]) return Errors[0]; //檢測ID的校驗位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
相關文章
- js實現身份證號碼驗證JS
- PHP 驗證身份證號碼PHP
- js正則驗證身份證號JS
- 身份證號碼驗證系統
- 身份證號碼驗證演算法演算法
- 精確驗證身份證號碼程式碼
- javascript身份證號碼校驗JavaScript
- php與js方式驗證手機號碼和郵件地址的合法性,js驗證身份證號碼PHPJS
- 中國身份證號驗證庫
- C++身份證號驗證C++
- C#驗證身份證號C#
- javascript實現的身份證號碼驗證程式碼JavaScript
- JS驗證18位身份證號的正確性JS
- JS校驗身份證號的合法性JS
- javascript實現的身份證號碼合法性驗證程式碼JavaScript
- 精確驗證身份證號碼合法性程式碼例項
- JS驗證身份證的合法性JS
- swift 郵箱、密碼、手機號、身份證驗證正則Swift密碼
- js驗證手機號碼JS
- js實現的身份證合法性驗證程式碼JS
- Javascript使用正則驗證身份證號(簡單)JavaScript
- java 實現從15位~18位的身份證號碼轉換,校驗中國大陸公民身份證、香港居民身份證、澳門身份證和臺灣身份證。Java
- javascript 驗證身份證JavaScript
- 身份證號碼校驗位的計算方式
- 正則實現二代身份證號碼驗證詳解
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- 身份證驗證工具類
- AngularJS 如何做身份驗證AngularJS
- 身份證號碼的正規表示式及驗證詳解(JavaScript,Regex)JavaScript
- js檢查身份證號是否正確JS
- WEB身份驗證Web
- Ext實現的身份證格式驗證程式碼
- 用WPS格式轉換工具校驗身份證號碼
- excel身份證號提取年齡公式 身份證號碼提取精確年齡的公式Excel公式
- 驗證碼---js重新整理驗證碼JS
- js正規表示式驗證手機,郵箱,身份證JS
- 精準實現身份證號碼格式校驗程式碼例項
- Javascript 身份證號獲得出生日期、獲得性別、檢查身份證號碼JavaScript