关键代码
/**
* 验证身份证号18位
*/
/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
/**
* 验证身份证号15位
*/
/^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/
vant实例
<template>
<van-form class="resident" @submit="onSubmit">
<van-field
v-model="idcard"
name="身份证号"
label="身份证号"
placeholder="身份证号"
:rules="[{ required: true, message: '请填写身份证号' },{validator, message: '身份证号码格式错误!'}]"
/>
</van-form>
</template>
<script>
export default {
data () {
return {
idcard: ''
}
}
methods: {
/**
* 身份证验证
*/
validator (val) {
const card15 = /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/
const card18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
return card15.test(val) || card18.test(val)
}
}
}
</script>