Vue表单验证信息

import { Toast } from 'vant';
let verify = {
    // 中文校验
    validateName(value) {
        if (!value) {
            Toast("姓名不能为空");
            return false;
        }
        if (!/^[\u0391-\uFFE5A-Za-z]+$/.test(value)) {
            Toast("请填写正确的出行人姓名");
            return false;
        } else {
            return true;
        }
    },
    // 是否身份证号码格式
    validateIdNo(value) {
        const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
        if (value == '' || value == undefined || value == null) {
            Toast("证件号码不能为空");
            return false;
        } else {
            if ((!reg.test(value)) && value != '') {
                Toast("身份证号格式错误");
                return false;
            } else {
                return true;
            }
        }

    },
    // 是否手机号码
    validatePhone(value) {
        const reg = /^[1][3-9][0-9]{9}$/;
        if (value == '' || value == undefined || value == null) {
            Toast("电话号码不能为空");
            return false;
        } else {
            if ((!reg.test(value)) && value != '') {
                Toast("请输入正确的电话号码");
                return false;
            } else {
                return true;
            }
        }
    },
    // 是否固话
    validateTelphone(value) {
        const reg = /0\d{2,3}-\d{7,8}/;
        if (value == '' || value == undefined || value == null) {
            Toast("号码不能为空");
            return false;
        } else {
            if ((!reg.test(value)) && value != '') {
                Toast("请输入正确的固定电话");
                return false;
            } else {
                return true;
            }
        }
    },
    // 是否邮箱
    validateEMail(value) {
        const reg = /^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;
        if (value == '' || value == undefined || value == null) {
            Toast("邮箱不能为空");
            return false;
        } else {
            if ((!reg.test(value)) && value != '') {
                Toast("请输入正确的邮箱");
                return false;
            } else {
                return true;
            }
        }
    },
    // 可空邮箱
    validateEMail2(value) {
        const reg = /^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;
        if ((!reg.test(value)) && value != '') {
            Toast("请输入正确的邮箱");
            return false;
        } else {
            return true;
        }
    },
    // 超级身份证验证
    checkidcardfun(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;

        if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3,5}(\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;
                }
            }
        }
        console.log(tip);
        return pass;
    }
}

export default verify;

if (!this.verify.validatePhone(this.phone)) {
        return;
}
posted @ 2020-03-19 15:27  NidhoggDJoking  阅读(120)  评论(0)    收藏  举报