vue前端用正则表达式验证身份证号
时间: 2023-10-27 17:04:08 浏览: 200
可以使用如下正则表达式验证身份证号:
```javascript
// 身份证号正则表达式
const idCardReg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;
// 验证身份证号
if (!idCardReg.test(idCard)) {
// 身份证号格式不正确
console.log('身份证号格式不正确');
}
```
其中,`/(^\d{15}$)|(^\d{17}([0-9]|X)$)/` 是身份证号的正则表达式,可以匹配 15 位或 18 位身份证号。如果身份证号格式不正确,可以打印提示信息或进行其他操作。
相关问题
vue前端写 身份证校验方法?
在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。
阅读全文