常用的正则


// 常用正则
const regularData = {
    'ExPhone': /^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(19[0-9]{1})|(18[0-9]{1}))+\d{8})$/, // 手机号
    'ExEmail': /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/, // email
    'ExZip': /^[0-9]{6}$/, // 邮政编号
    'ExCellphone': /^([0-9]{3,4}-)?[0-9]{7,8}$/, // 座机
    'ExBankcard': /^([1-9]{1})(\d{14}|\d{18})$/, // 银行卡号
    'ExIdentity': /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/, // 身份证号
    'ExCredit': /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/, // 社会信用代码
    // 网址
    'ExWebsite': /^((ht|f)tps?):\/\/([\w\-]+(\.[\w\-]+)*\/)*[\w\-]+(\.[\w\-]+)*\/?(\?([\w\-\.,@?^=%&:\/~\+#]*)+)?/, // eslint-disable-line no-useless-escape
    'ExPassWord': /^([a-zA-Z0-9!,.@#$%^&*()_?<>{}]){6,20}$/
}

const validateRules = (rule, value, callback) => { // 规则匹配
    let reg = ''
    if (rule.field) {
        key = rule.field
        if (key === 'mobile') {
            reg = regularData['ExPhone']
            validateMethod()
        } else if (key === 'password' || key === 'pwd') {
            reg = regularData['ExPassWord']
            pwd = value
            validateMethod()
        } else if (key === 'email') {
            reg = regularData['ExEmail']
            if (value !== '') validateMethod()
        } else if (key === 'passwordConfirm') {
            if (value === '') {
                callback(new Error('请再次输入密码'))
            } else if (value !== pwd) {
                callback(new Error('两次输入密码不一致!'))
            } else {
                callback()
            }
        } else if (key === 'isRead') {
            if (value === false) {
                callback(new Error())
            } else {
                callback()
            }
        }
    }

    // 验证规则
    function validateMethod () {
        if (reg.test(value)) {
            // 指定验证字段验证值是否存在于数据库
            if (key === 'mobile' || key === 'email') {
                // 判断rules中对应字段的属性中是否存在exists属性,true验证存在性
                if (rule.exists) {
                    checkExists()
                } else {
                    callback()
                }
            } else {
                callback()
            }
        } else {
            // 区分指定验证字段返回的错误信息
            if (key === 'mobile') {
                callback(new Error('请输入有效的手机号'))
            } else if (key === 'email') {
                callback(new Error('请输入正确的邮箱地址'))
            } else {
                callback(new Error())
            }
        }
    }

    
    function checkExists () {
        if (key === 'mobile') {
            checkMobile({mobile: value})
                .then((res) => {
                    if (res.data.code < 0) {
                        callback(new Error(res.data.msg))
                    } else {
                        callback()
                    }
                })
        } else if (key === 'email') {
            checkEmail({email: value})
                .then((res) => {
                    if (res.data.code < 0) {
                        callback(new Error(res.data.msg))
                    } else {
                        callback()
                    }
                })
        }
    }
}

export {
    areaData
    , provinceCityData
    , centerNavData
    , regularData
    , validateRules
}

  

转载于:https://www.cnblogs.com/taochengyong/p/10690953.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值