js commonly used regular check function, regular expression

Code:

/*正则检测;value:检测的值;rule:表达式类型*/
export function regex(value, rule) {
    switch (rule) {
        case "require":
            rule = /.+/;
            break;
        case "zip":
            rule = /^[1-9]\d{5}$/;
            break;
        case "currency":
            rule = /^\d+(\.\d+)?$/;
            break; //货币
        case "number":
            rule = /^[1-9](\d+)?$/;
            break; //正整数
        case "natural_number":
            rule = /^[0-9](\d+)?$/;
            break; //自然数
        case "integer":
            rule = /^[-+]?[0-9](\d+)?$/;
            break; //整数
        case "double":
            rule = /^[-+]?\d+(\.\d+)?$/;
            break; //正数、负数、和小数
        case "english":
            rule = /^[A-Za-z]+$/;
            break; //英文大小写
        case "time":
            rule = /^[0-9]{4}-[0-9]{2}-[0-9]{1,2}\s+[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}$/;
            break; //2012-03-13 11:09:11
        case "date":
            rule = /^[0-9]{4}-[0-9]{2}-[0-9]{1,2}$/;
            break; // 2012-03-13
        case "email":
            rule = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
            break; //邮箱
        case "tel":
            rule = /^((\d{10,12})|(\d{7,8})|(\d{3}-\d{8})|(\d{4}-\d{8})|(\d{4}-\d{7}))$/;
            break; //座机
        case "qq":
            rule = /^\d{6,11}$/;
            break;
        case "short_url":
            rule = /^[0-9A-Za-z]+$/;
            break; // 短域名
        case "short_tel":
            rule = /^(\d){3,6}$/;
            break; //短号
        case "china":
            rule = /^[\u4E00-\u9FA5]+$/;
            break;
        case 'mob_tel':
            rule = /^((\d{10,11})|(\d{7,8})|(\d{3}-\d{8})|(\d{4}-\d{8})|(\d{4}-\d{7}))$/;
            break; //移动电话
        case 'mob':
            rule = /^1[3456789]\d{9}$/;
            break; //手机号码
        case "card":
            rule = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
            break; //身份证
        case 'tag':
            rule = /^[-+]?\d+(\.\d+),[-+]?\d+(\.\d+)$/;
            break; //坐标
        // case 'url':
        //     rule = /^(http|https):\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?$/;
        //     break; //URL
        case 'url':
            rule = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|vip|top|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9@.,?'\\+&%$#=~_-]+))*$/;
            break; //URL
        case 'oxiao_url':
            rule = /^(http|https):\/\/u2\.0xiao\.com+(\/[\w-.\/?%&=]*)?$/;
            break; //零校URL
        case "url_all":
            rule = /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/;
            break; //全部url
        case "tel_all":
            rule = /((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/;
            break;
        case "area_code":
            rule = /^\d{12}$/;
            break; //地区code
        case "ip":
            rule = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
            break; //ip地址的合法性
        case "white_ip":
            rule = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]|\*)\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]|\*)$/;
            break; //ip地址的合法性
        case "one_decimal":
            rule = /^([0-9]*)+(\.[0-9])?$/;
            break; //带一位小数的数字
        case "two_decimal":
            rule = /^([0-9]*)+(\.[0-9]{1,2})?$/;
            break; //带两位小数的数字
    }
    return rule.test(value);
}

Guess you like

Origin blog.csdn.net/qq_42740797/article/details/123178140