當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS身份证号校验
JS身份證號校驗
法一:
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if(reg.test(idCard) === false) {Base.alert("身份證輸入不合法");return false; }法二:
if(idCard.length==18){var idCard_string = JSON.stringify(idCard);var spstr = idCard_string.split("");var x = spstr[spstr.length - 2];console.log(spstr)if (x === "x") {Base.alert("身份證號最后一位X為大寫", "error");return false;}var reg = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);var arrSplit = idCard.match(reg); //檢查生日日期是否正確,value就是身份證號if (!arrSplit) {Base.alert("身份證號格式有問題,請重新輸入", "error");return false;}var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);var bGoodDay;bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));if (!bGoodDay) {Base.alert("輸入的身份證號里出生日期不對!", "error");return false;} else { //檢驗18位身份證的校驗碼是否正確。 //校驗位按照ISO 7064:1983.MOD 11-2的規(guī)定生成,X可以認(rèn)為是數(shù)字10。var valnum;var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');var nTemp = 0, i;for (i = 0; i < 17; i++) {nTemp += idCard.substr(i, 1) * arrInt[i];}valnum = arrCh[nTemp % 11];if (valnum != idCard.substr(17, 1)) {Base.alert("18位身份證的校驗碼不正確!應(yīng)該為:" + valnum, "error");return false;}return true;}總結(jié)
- 上一篇: NCRE | 四级网络工程师错题
- 下一篇: PP-YOLO