正则校验总结

  • 端口校验
validatePort (rule, value, callback){
      let reg = /^(([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5]))$/;
      if (value == '') {
        return callback(new Error('请输入端口号'))
      } else if (reg.test(value) == false) {
        callback(new Error('请输入正确的端口号'))
      } else {
        callback()
      }
    },
  • IP校验
validateIp (rule, value, callback) { //校验IP
      let regexp = /^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$/
      let valdata = value.split(',')
      let data = valdata[valdata.length - 1]
      //格式是否符合要求
      let isCorrect = true;
      //是否重复
      let isRepeat = false;
      if (valdata.length) {
        for (let i = 0; i < valdata.length; i++) {
          if (regexp.test(valdata[i]) === false) {
            isCorrect = false;
          }
        }
        // 每次输入的会立即放在valdata数组中,在查找数组中是否已经存在该元素的时候需要排除自身
        //即新加入数组的元素,所以循环到倒数第二个元素时停止
        for (let i = 0; i < valdata.length - 1; i++) {
          if (valdata[i] === data) {
            isRepeat = true;
          }
        }
      }
      if (value === '') {
        return callback(new Error('请输入iP地址'))
      } else if (!isCorrect) {
        callback(new Error('请输入正确的ip地址'))
      } else if (isRepeat) {
        callback(new Error('输入的ip地址不能重复'))
      } else {
        callback();
      }
    },
  • URL

以http(s)开头,m3u8结尾*

validateUrl(rule, value, callback) {
      //以http(s)开头,m3u8结尾
      let reg = /^(https?|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]*?(\.m3u8)$/;
      if (!reg.test(value)) {
        callback(new Error('要求以https或http开头,m3u8结尾的视频地址'))
      } else {
        callback()
      }
    },
  • 硬件MAC地址
validateMac(rule, value, callback) {
      //let mac = value.toUpperCase();
      var reg = /^[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}$/;
      if (value == '') {
        return callback(new Error('请输入MAC地址'))
      } else if (reg.test(value.toUpperCase()) == false) {
        callback(new Error('MAC地址错误或含有非法字符'))
      } else {
        callback()
      }
    }

版权声明:本文为sx_lidan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。