加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

常用的正则

发布时间:2020-12-14 06:07:25 所属栏目:百科 来源:网络整理
导读:// 常用正则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 ‘
// 常用正则
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}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$)|(^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])((d{4})|d{3}[Xx])$)$/,// 身份证号
    ‘ExCredit‘: /^[^_IOZSVa-zW]{2}d{6}[^_IOZSVa-zW]{10}$/,// 社会信用代码
    // 网址
    ‘ExWebsite‘: /^((ht|f)tps?)://([w-]+(.[w-]+)*/)*[w-]+(.[w-]+)*/?(?([w-.,@?^=%&:/~+#]*)+)?/,// eslint-disable-line no-useless-escape
    ‘ExPassWord‘: /^([a-zA-Z0-9!,[email?protected]#$%^&*()_?<>{}]){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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读