循环判断多个条件 跳出判断

//在文件中写入正则
export function ipNoCode(str){
  return /((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}/.test(str)
}

export function  ip1(str){
  return /^(\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])\.([1-9]|1\d{1,2}|2[0-4]\d|25[0-4])-([1-9]|1\d{1,2}|2[0-4]\d|25[0-4])$/.test(str)
}
export function ip2(str){
  return /^((\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.){3}((\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\/){1}(\d|[1-3]\d)$/.test(str)
}
export function ip3(str){
  return /^(\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])\.([0-9]|10)-([1-9]|10)\.(\*)$/.test(str)
}
 <el-form :model="form" ref="form1" label-width="0px">
     <el-form-item label="" prop="scanTargetId" :rules="[setRequired('请输入IP信息'),{ validator: ipVliad, trigger: 'change'}]">  
      <el-input :disabled="rwId ? true : false" v-model="form.scanTargetId" class="textarea" type="textarea" :rows="20" placeholder="请输入IP、IP段,可输入多行
IP段支持格式如下:
10.10.10.1-100
10.10.10.0/24
如果要输入连续的多个网段可以使用下面的格式:
192.168.1-10.*
代表192.168.1.0-192.168.10.0共10个网段" />
      </el-form-item>
</el-form>
 ipVliad(rule, value, callback) {
      if(!value){
        return
      }
      let code = value.trim().split(/[(\r\n)\r\n]+/)
      let flag = 0;
      let flag1 = 0;
      let flag2 = 0;
      let flag3 = 0;
      let callbackStr = `请输入正确的IP、IP段,可输入多行,
             IP段支持格式如下: 
             10.10.10.1-100、
            10.10.10.0/24、
             如果要输入连续的多个网段可以使用下面的格式: 
             192.168.1-10.*  代表192.168.1.0-192.168.10.0共10个网段`;
      for(let i=0;i<code.length;i++){
        if(code[i].indexOf('-')!=-1 && code[i].indexOf('*')==-1){
          if(!ip1(code[i])){
             flag=1;
          }
        }else if(code[i].indexOf('/')!=-1){
          if(!ip2(code[i])){
            flag1 = 1;
          }
        }else if(code[i].indexOf('*')!=-1){
          if(!ip3(code[i])){
             flag2=1;
          }
        }else{
          if(!ipNoCode(code[i])){
            flag3=1;
          }
        }
        if(i == code.length - 1){
          if(flag == 0 && flag1 == 0 && flag2 == 0 && flag3 == 0){
            return callback();
          }else{
            return callback(new Error(callbackStr));
          }
        }
      }
    },

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值