zoukankan      html  css  js  c++  java
  • 常用的正则

    // 常用正则
    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!,.@#$%^&*()_?<>{}]){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
    }
    

      

  • 相关阅读:
    android Textview动态设置大小
    小米1plus MIUI RadioButton的问题
    快读
    高精集合
    清北学堂part2
    清北学堂part1
    OTZ%%%子谦。大佬
    筛质数大优化
    回文日期
    高精度加法
  • 原文地址:https://www.cnblogs.com/taochengyong/p/10690953.html
Copyright © 2011-2022 走看看