vue2.6验证18位身份证正则表达式
时间: 2023-12-08 19:39:44 浏览: 94
正则表达式验证身份证
以下是Vue 2.6中验证18位身份证号码的正则表达式:
```javascript
/^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
```
该正则表达式的含义是:
- `^[1-9]\d{5}`:以非零开头的6位数字开头;
- `(19|20)\d{2}`:表示19或20开头的4位数字;
- `((0[1-9])|(1[0-2]))`:表示月份,01-12;
- `(([0-2][1-9])|10|20|30|31)`:表示日期,01-31;
- `\d{3}`:表示3位数字,通常是区域代码;
- `[0-9Xx]$`:表示最后一位可以是数字或者大写字母X。
以下是Vue 2.6中使用该正则表达式验证身份证号码的方法:
```javascript
// 定义验证方法
const validateIdCard = (rule, value, callback) => {
const reg = /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
if (!reg.test(value)) {
callback(new Error('请输入正确的身份证号码'))
} else {
callback()
}
}
// 在Vue组件中使用
export default {
data() {
return {
idCard: ''
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 验证通过
} else {
// 验证失败
}
})
}
},
mounted() {
// 添加验证规则
this.$refs.form.validateField('idCard')
},
validations: {
idCard: {
required,
validateIdCard
}
}
}
```
阅读全文