身份证校验(非常完整)
身份证校验(18位,15位,2月)
以下是一个身份证校验的方法,直接在前端调用该方法即可,用不到该方法的,方法后面有正则表达式解释
export function validateIdNumber(rule, value, callback) {
var reg = /^[1-9]\d{5}((\d{2}(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[13456789]|1[012])(0[1-9]|[12][0-9]|30))|(02(0[1-9]|1[0-9]|2[0-8]))))|(((0[48]|[2468][048]|[13579][26])|(00))0229))\d{2}[0-9Xx]$/;
var reg1 = /^[1-9]\d{5}((((19|[2-9][0-9])\d{2})(0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|(((19|[2-9][0-9])\d{2})(0[13456789]|1[012])(0[1-9]|[12][0-9]|30))|(((19|[2-9][0-9])\d{2})02(0[1-9]|1[0-9]|2[0-8]))|(((1[6-9]|[2-9][0-9])(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))0229))\d{3}[0-9Xx]$/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if (!reg.test(value) && !reg1.test(value)) {
callback(new Error('输入18位或15位正确的身份证号码!'));
} else {
callback();
}
}
}
方法详细解释
上述代码中的 var reg表示十五位的省份证校验;var reg1位18位的身份校验
下面展示 15位身份校验
。
// 15位省份证校验
var reg = /^[1-9]\d{5}((\d{2}(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[13456789]|1[012])(0[1-9]|[12][0-9]|30))|(02(0[1-9]|1[0-9]|2[0-8]))))|(((0[48]|[2468][048]|[13579][26])|(00))0229))\d{2}[0-9Xx]$/;
注释:
15位身份证号码的含义:
1-