// 校验身份证号
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];
}