自用常用正则表达式合集

export default {
    validation: ((rule, value, callback) => {
        //使用示例
        // rule = {
        //     'text1': [                               //'text1'为表单变量字段名,与v-model中的formData.xxxx保持一致,与el-form-item中的prop=xxxx保持一致;
        //     {
        //         validator: this.validation,          //必填:固定值
        //         check: ['empty', 'blank'],           //必填:字符串数组,其中的类型值可参考validation.js中switch case语句中的注释
        //         label: '用户名',                      //选填:字符串,若传此参数,错误信息文本的前面则会加上此文本,如“不能为空”将变成“用户名不能为空”
        //         message: '请输入正确的身份证号码',       //选填:字符串,若传此参数,则会使用此文本作为错误提示
        //         maxlength: 5,                        //选填:数字,若传此参数,除了check中的项目,还会追加字符长度验证
        //     }],
        // }
        if (rule && rule.check) {
            let result, message = rule.lable || '';
            //如果值为空且不包含非空验证,则跳过本次验证
            if (!rule.check.includes('empty') && !value) {
                result = true
            }
            else {
                for (let type of rule.check) {
                    switch (type) {
                    case 'empty': //非空判断
                        result = value && value !== '' && value !== null && value !== undefined;
                        !result && (message += '不能为空');
                        break;
                    case 'blank': //首尾不能为空格
                        result = !(/^\s+/g.test(value)) && !(/\s+$/g.test(value));
                        !result && (message += '输入错误');
                        break;
                    case 'number': //验证是否为纯数字
                        result = /^[0-9]*$/g.test(value);
                        !result && (message += '格式限制:数字');
                        break;
                    case 'en': //验证是否为英文字母
                        result = /^[A-Za-z]+$/g.test(value);
                        !result && (message += '格式限制:字母');
                        break;
                    case 'cn': //验证是否为中文汉字
                        result = /^[\u4e00-\u9fa5]{1,}$/g.test(value);
                        !result && (message += '格式限制:汉字');
                        break;
                    case 'en-number': //验证英文和数字混合
                        result = /^[A-Za-z0-9]+$/.test(value);
                        !result && (message += '格式错误');
                        break;
                    case 'mobile': //验证验证手机号
                        result = /^[1][3,4,5,7,8,9][0-9]{9}$/.test(value);
                        !result && (message += '手机号码格式错误');
                        break;
                    case 'email': //验证电子邮箱
                        result = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
                        !result && (message += '电子邮箱格式错误');
                        break;
                    case 'id': //验证身份证号码
                        // result = (/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/.test(value)) || (/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/.test(value));
                        result = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/.test(value);
                        !result && (message += '身份证号码格式错误');
                        break;
                    case 'realname': //验证姓名
                        result = /^[\u4e00-\u9fa5]{2,6}$/.test(value);
                        !result && (message += '姓名格式错误');
                        break;
                    case 'symbol': //验证不包含特殊符号
                        result = !(/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/.test(value));
                        !result && (message += '包含非法字符');
                        break;
                    case 'ip': //验证IP地址
                        result = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/g.test(value);
                        !result && (message += '格式错误');
                        break;
                    case 'array-length': //验证数组长度
                        if(rule.minlength && value.length < rule.minlength){
                            result = false;
                            message += '请至少选择' + rule.minlength + '项';
                            break;
                        }
                        else if(rule.maxlength && value.length > rule.maxlength){
                            result = false;
                            message += '请最多选择' + rule.maxlength + '项';
                            break;
                        }
                        else{
                            result = true;
                            break;
                        }
                    case 'carNumber' :   //验证车牌号  智能验证普通常见的
                        result = /^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-HJ-NP-Z]{1}\d{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/.test(value);
                        !result && (message += '格式错误');
                        break;
                    case 'string-length': //验证字符长度
                        if(rule.minlength && value.length < rule.minlength){
                            result = false;
                            message += '低于字符限制:' + rule.minlength;
                            break;
                        }
                        else if(rule.maxlength && value.length > rule.maxlength){
                            result = false;
                            message += '超出长度限制:' + rule.maxlength;
                            break;
                        }
                        else{
                            result = true;
                            break;
                        }
                    case 'trueNumber': //正整数第一位不能为0
                    // result = /^[0-9]*$/g.test(value);
                        // result = /^(([1-9]{0,7})|(0{1}))(\.\d{1,2})?$/.test(value);
                        result = /^[1-9][0-9]*$/.test(value)
                        !result && (message = '请输入正整数');
                        // if(result)
                            break;     
                        // 整数和小数
                    case'number-decimals':
                        result = /^-?\d$|^-?[1-9]\d+$|^-?\d+\.\d+$/.test(value)
                        !result && (message = '可以输入整数负数和小数');
                        // if(result)
                            break;
                    case 'number-length-12-2': //验证字符长度
                        // result = /^(([1-9]{0,11})|(0{1}))(\.\d{1,2})?$/.test(value);
                        result = /^[0-9]{1}\d{0,11}(\.\d{1,2})?$/.test(value)
                        !result && (message = '整数最多12位,小数最多2位');
                        // if(result)
                            break;
                    case 'number-length-8-2': //验证字符长度
                        // result = /^(([1-9]{0,7})|(0{1}))(\.\d{1,2})?$/.test(value);
                        result = /^[0-9]{1}\d{0,7}(\.\d{1,2})?$/.test(value)
                        !result && (message = '整数最多8位,小数最多2位');
                        // if(result)
                            break; 
                    case 'number-length-6-2': //验证字符长度
                        // result = /^(([1-9]{0,5})|(0{1}))(\.\d{1,2})?$/.test(value);
                        result = /^[0-9]{1}\d{0,5}(\.\d{1,2})?$/.test(value)
                        !result && (message = '整数最多6位,小数最多2位');
                        // if(result)
                            break; 
                    case 'number-length-8-3': //验证字符长度
                        // result = /^(([0-9]{0,7})|(0{1}))(\.\d{1,3})?$/.test(value);
                        result = /^[0-9]{1}\d{0,7}(\.\d{1,3})?$/.test(value)
                        !result && (message = '整数最多8位,小数最多3位');
                        // if(result)
                            break; 
                    case 'pwd': //长度8-16必须包含大小写字母数字和特殊字符
                        result= /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)(?![a-zA-Z0-9]+$)(?![a-zA-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9\\W_!@#$%^&*`~()-+=]+$)(?![0-9A-Z\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,16}$/.test(value)
                        !result && (message = '长度8-16必须包含大小写字母数字和特殊字符');
                    }
                }
            }
            return result ? callback() : callback(new Error(rule.message ? rule.message : message));
        }
    })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值