js利用正则校验身份证号合法性

校验身份证号合法性

支持15位和18位身份证号
支持地址编码、出生日期、校验位验证

1.示例
在这里插入图片描述
2.方法

IdentityCodeValid: function (code) {
        var city = {
            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: "国外 "
        };
        var tip = "";
        var pass = true;
        //验证身份证格式(6个地区编码,8位出生日期,3位顺序号,1位校验位)
        if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
            tip = "身份证号格式错误";
            pass = false;
        } else if (!city[code.substr(0, 2)]) {
            tip = "地址编码错误";
            pass = false;
        } else {
            //18位身份证需要验证最后一位校验位
            if (code.length == 18) {
                code = code.split('');
                //∑(ai×Wi)(mod 11)
                //加权因子
                var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
                //校验位
                var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
                var sum = 0;
                var ai = 0;
                var wi = 0;
                for (var i = 0; i < 17; i++) {
                    ai = code[i];
                    wi = factor[i];
                    sum += ai * wi;
                }
                var last = parity[sum % 11];
                if (parity[sum % 11] != code[17]) {
                    tip = "校验位错误";
                    pass = false;
                }
            }
        }
        return pass;
    },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Element UI 的表单校验功能来验证身份证合法性。你可以通过在表单项的 `rules` 属性中定义自定义校验规则来实现。下面是一个示例代码: ```html <template> <el-form :model="form" label-width="80px"> <el-form-item label="身份证号码" prop="idCard"> <el-input v-model="form.idCard"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { idCard: '' } }; }, methods: { submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 表单验证通过,执行提交操作 // ... } else { // 表单验证失败 return false; } }); } }, mounted() { this.$refs.form.resetFields(); } }; </script> ``` 然后,你需要在自定义校验规则中添加身份证验证的逻辑。可以使用正则表达式或其他方法进行验证。以下是一个使用正则表达式验证身份证号码的示例: ```javascript import { validateIdCard } from '@/utils/validator'; // 导入自定义的身份证验证函数 export default { data() { return { form: { idCard: '' }, rules: { idCard: [ { required: true, message: '请输入身份证号码', trigger: 'blur' }, { validator: validateIdCard, trigger: 'blur' } ] } }; }, methods: { submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 表单验证通过,执行提交操作 // ... } else { // 表单验证失败 return false; } }); } }, mounted() { this.$refs.form.resetFields(); } }; ``` 在上面的代码中,`validateIdCard` 是一个自定义的验证函数,你可以根据自己的需求来实现。该函数接收一个参数(即输入的身份证号码),并返回一个布尔值表示是否通过验证。在 `rules` 中使用 `{ validator: validateIdCard, trigger: 'blur' }` 的方式来添加自定义校验规则。 请注意,这只是一个示例,你需要根据具体的业务需求和正则表达式来实现身份证合法性校验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值