关于javascript:ElementUi配置自定义校验规则-校验IP和IP段

8次阅读

共计 1770 个字符,预计需要花费 5 分钟才能阅读完成。

data() {const isValidIp = (rule, value, callback) => { // 校验 IP 是否合乎规定
    var regEx = /,/g
    var ipList = value.toString().replace(regEx, ',').split(',')
    var reg = /^(\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])$/
    for (var i in ipList) {if (!reg.test(ipList[i])) {return callback(new Error('请输出节点 ip 地址,多节点用, 分隔'))
      } else {callback()
      }
    }
    return true
  }
  return {
    form: {
      name: '',
      accCode: '',
      ip: '',
      nodeIp: ''
    },
    accList: [],
    rules: {name: [{ required: true, message: '请输出', trigger: 'blur'}],
      accCode: [{required: true, message: '请抉择', trigger: 'blur'}],
      ip: [{required: true, message: '请输出', trigger: 'blur'}],
      nodeIp: [{required: true, validator: isValidIp, message: '请输出', trigger: 'blur'}]
    }
  }
},
import {isValidIp} from '../../../utils/validate'
const validIp = (rule, value, callback) => {
      // 校验 IP 是否合乎规定
      if (!isValidIp(value) {return callback(new Error('请输出节点 ip 地址,多节点用, 分隔'))
      }else {callback()
      }
    }
/**
 * @param {Array} arg
 * @returns {Boolean}
 */
export function isValidIp(arg) {
  var regEx = /,/g
  var ipList = arg.toString().replace(regEx, ',').split(',')
  var reg = /^(\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])$/
  for (var i in ipList) {if (!reg.test(ipList[i])) {return false}else {callback()
      }
  }
  return true
}

同时校验 IP 和 IP 段

function isValidIp(arg) {
  var regEx = /,/g
  var ipList = arg.toString().replace(regEx, ',').split(',')
  var reg = /^(\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])$/
  var pattern = /^(\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])\/(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
  for (var i in ipList) {if (!reg.test(ipList[i]) && !pattern.test(ipList[i])) {return false}else {callback()
      }
  }
  return true
}
正文完
 0