vue前端写 身份证校验方法?
时间: 2023-07-28 15:10:55 浏览: 103
在Vue前端中,身份证校验方法可以使用正则表达式来实现。以下是一个示例方法:
```javascript
checkIDCard(idCard) {
// 身份证正则表达式
const reg = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/
if (!reg.test(idCard)) {
return false
}
// 将身份证号码分解为数组
const idCardArr = idCard.split('')
let sum = 0
// 权重因子
const weightFactor = [
7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2
]
// 校验码对应值
const checkCodeList = [
'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'
]
// 计算身份证号码校验码
for (let i = 0; i < 17; i++) {
sum += idCardArr[i] * weightFactor[i]
}
const checkCodeIndex = sum % 11
if (idCardArr[17].toUpperCase() !== checkCodeList[checkCodeIndex]) {
return false
}
return true
}
```
在上面的示例方法中,我们首先定义了一个身份证正则表达式,然后使用test方法验证传入的身份证号码是否符合规则。如果不符合规则,直接返回false,否则继续进行校验。我们将身份证号码分解为数组,并定义了权重因子和校验码对应值。然后通过遍历身份证号码数组,将每一位数字与权重因子相乘,并累加求和。最后根据校验码对应值进行校验,如果校验码不正确,返回false,否则返回true。
阅读全文