正则表达式-后续持续更新

匹配表达式供参考学习使用。大家有不同的或者觉得有问题的欢迎修改更正(有从网络收集,没全验证)供参考、供参考、供参考

//匹配特殊字符
 var re = /[`~!@#$%^&*()_\-+=<>?:"{}|,./;'\·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g;
 //匹配中文范围
 var re2 = /[\u4E00-\u9FA5]/g;
 //双字节字符串 (汉字):
 var re3 = [^\x00-\xff]*;
 //匹配手机号
 var mobile = /^1(3|4|5|7|8)\d{9}$/;
 //匹配IP
 var IP = /^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/
 //IP地址:
 \d+\.\d+\.\d+\.\d+ //(提取IP地址时有用)
 //身份证正则表达式(15位)
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
//身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)
//邮箱地址1
var strRegex = /^\w+([\.\-]\w+)*\@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/;
//提取信息中的网络链接:
(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
//提取信息中的邮件地址:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
//提取信息中的图片链接:
(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
//中国邮政编码:
[1-9]{1}(\d+){5}
//整数:
\d+
//浮点数(即小数):
(-?\d*)\.?\d+
// 日期格式:
^\d{4}-\d{1,2}-\d{1,2}
//域名:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zAZ0-9]{0,62})+/.?

Vue校验IP以及多个IP以逗号分隔

function isIp(value) {
  value = value.trim();
  var reSpaceCheck = /^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])([/]([3][0-2]|[1-2][0-9]|[1-9]))?\s*$/,
    ipv6Check = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))([%/]([1][0-1][0-9]|[1][2][0-8]|[1-9][0-9]|[1-9]))?\s*$/
  return reSpaceCheck.test(value) || ipv6Check.test(value);
}
validateIPnos: (rule, value, callback) => {
    if (value) {
      if (value.indexOf(",") != -1) {
        var values = value.split(",");
        let isSuc = true;
        for (let temp in values) {
          if (!values[temp]) {
            callback(new Error('多IP格式错误'));
          } else {
            if (isIp(values[temp])) {

            } else {
              callback(new Error('请输入正确的IP'));
            }
          }
        }
        if (isSuc) {
          callback();
        }
      } else {
        if (value) {
          if (isIp(value)) {
            callback();
          } else {
            callback(new Error('请输入正确的IP'));
          }
        } else {
          callback();
        }
      }
    } else {
      callback()
    }
  },

验证手机号

function isPhoneNum(value) {
  var reSpaceCheck = /^1[345789]\d{9}$/; //or /^0?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57]|19[0-9])[0-9]{8}$/
  return reSpaceCheck.test(value);
}
/* 合法uri*/
  validateURL(textval) {
    const urlregex = /^(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|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
    return urlregex.test(textval)
  },
  /* 小写字母*/
  validateLowerCase(str) {
    const reg = /^[a-z]+$/
    return reg.test(str)
  },
  /* 大写字母*/
  validateUpperCase(str) {
    const reg = /^[A-Z]+$/
    return reg.test(str)
  },
  /* 大小写字母*/
  validateAlphabets(str) {
    const reg = /^[A-Za-z]+$/
    return reg.test(str)
  },
//---匹配IP范围 看是否适合用cidr-js依赖插件中的range()方法
import CIDR from 'cidr-js'
this.cidr = new CIDR();
this.cidr.range(ipArr[i]);
//匹配IP范围 1.1.1.1-(2-255)或者1.1.1.1/(2-255),以及逗号分隔
validateIPRange(rule,value,callback){
        if(value) {
          var ipArr = value.split(",");
          console.log("ipArr",ipArr)
          for(var i in ipArr){
            if(ipArr[i].indexOf("-")!=-1){
              //匹配123.123.123.123-(0-255)
             let testRex = /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\-(\d{1,2}|1\d{1,2}|2[0-4]\d|25[0-5])$/
              if(testRex.test(ipArr[i])){
                let ipSplit = ipArr[i].split("-");
                let ip1 = ipSplit[0];
                let ip2 = ipSplit[1];
                //截取Ip . 最后面的网段
                let ip1Last = ip1.substring(ip1.lastIndexOf(".")+1,ip1.length);
                if(parseInt(ip1Last)>=parseInt(ip2)){
                  callback(new Error('范围不能小于或等于当前IP'));
                  return;
                }
              }else{
                 callback(new Error('请输入正确的IP范围'));
                  return;
              }
            }else if(ipArr[i].indexOf("/")!=-1){
                 //匹配123.123.123.123/(0-255)
             let testRex = /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\/(\d{1,2}|1\d{1,2}|2[0-4]\d|25[0-5])$/
              if(testRex.test(ipArr[i])){
                let ipSplit = ipArr[i].split("/");
                let ip1 = ipSplit[0];
                let ip2 = ipSplit[1];
                //截取Ip . 最后面的网段
                let ip1Last = ip1.substring(ip1.lastIndexOf(".")+1,ip1.length);
                if(parseInt(ip1Last)>=parseInt(ip2)){
                  callback(new Error('范围不能小于或等于当前IP'));
                  return;
                }
              }else{
                 callback(new Error('请输入正确的IP范围'));
                  return;
              }
            }else{
              if(!this.isIp(ipArr[i])) {
                  callback(new Error('请输入正确的IP地址'));
                  return;
              }
            }
          }
          callback();
        }else{
          callback(new Error("IP范围不能为空"));
        }
      },

你可能感兴趣的:(另类实用,JS)