Código:
/*正则检测;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);
}