身份证号验证方法

// 校验身份证号
checkIdCardNumber(v) {
if (!v) {

Toast.fail('身份证号不能为空', 2)

return false
*
} else if (v.toString().length !== 18) {

Toast.fail('请输入18位有效的身份证号码', 2)> >

return false

} else {

let idCardNumber = v.split('')

let isIdCardNumber = this.validateIdCard(idCardNumber)

if (!isIdCardNumber) {

Toast.fail('身份证号码验证不通过,请重新输入', 2)

return false

} else {

return true

}
}

}

function validateIdCard(idCard) {
let Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加权因子
let ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]; // 身份证验证位值.10代表X
let sum = 0;
if (idCard[17].toLowerCase() == 'x') {
idCard[17] = 10;
}
for ( var i = 0; i < 17; i++) {
sum += Wi[i] * idCard[i];
}
valCodePosition = sum % 11;// 得到验证码所位置
return idCard[17] == ValideCode[valCodePosition];
}

原文地址:https://www.cnblogs.com/superclound/p/14821905.html