概述
标题 vue的身份证校验
1.data中的数据
const isCardID = (rule, value, callback) => {
console.log(value)
if (!/(^d{15}$)|(^d{17}(d|X|x)$)/.test(value)) {
callback(new Error('你输入的身份证长度或格式错误'))
}
// 身份证城市
const aCity = {
11: '北京',
12: '天津',
13: '河北',
14: '山西',
15: '内蒙古',
21: '辽宁',
22: '吉林',
23: '黑龙江',
31: '上海',
32: '江苏',
33: '浙江',
34: '安徽',
35: '福建',
36: '江西',
37: '山东',
41: '河南',
42: '湖北',
43: '湖南',
44: '广东',
45: '广西',
46: '海南',
50: '重庆',
51: '四川',
52: '贵州',
53: '云南',
54: '西藏',
61: '陕西',
62: '甘肃',
63: '青海',
64: '宁夏',
65: '新疆',
71: '台湾',
81: '香港',
82: '澳门',
91: '国外',
}
if (!aCity[parseInt(value.substr(0, 2))]) {
callback(new Error('你的身份证地区非法'))
}
// 出生日期验证
const sBirthday = (value.substr(6, 4) + '-' + Number(value.substr(10, 2)) + '-' + Number(value.substr(12, 2))).replace(
/-/g,
'/'
)
const d = new Date(sBirthday)
if (sBirthday !== d.getFullYear() + '/' + (d.getMonth() + 1) + '/' + d.getDate()) {
callback(new Error('身份证上的出生日期非法'))
}
// 身份证号码校验
let sum = 0
const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
const codes = '10X98765432'
for (let i = 0; i < value.length - 1; i++) {
sum += value[i] * weights[i]
}
const last = codes[sum % 11] // 计算出来的最后一位身份证号码
if (value[value.length - 1] !== last) {
callback(new Error('你输入的身份证号非法'))
}
callback()
}
2.放在校验中的代码
rules:{
idNo: [
{ validator: isCardID, trigger: 'blur' }
],
}
最后
以上就是霸气小蘑菇为你收集整理的vue的身份证校验的全部内容,希望文章能够帮你解决vue的身份证校验所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复