js输入框输入IP地址段

Vue

<textarea v-model= "textareaValue"></textarea>

<script>
export default {
    data(){
        return{
            textareaValue: ""    //存放输入框的值
        }
    }
}
</script>
  • 匹配一条IP地址
//定义一个正则的判断表达式
//一条IP的正则
const reg = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/
  • 匹配IP地址段,如图所示,通过换行符\n进行匹配
const reg = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))|\*)((\/([012]\d|3[012]|\d))?)(\n((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))|\*)((\/([012]\d|3[012]|\d))?))*$/

在这里插入图片描述

  • 匹配IP地址段,如图所示,通过逗号进行匹配
//多条IP的正则
const reg = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))|\*)((\/([012]\d|3[012]|\d))?)(,((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))|\*)((\/([012]\d|3[012]|\d))?))*$/

在这里插入图片描述
验证方法如下:

methods: {
    reg() {
        console.log('输入框的值', this.textareaValue)    //获取输入框的值
        if(!reg.test(this.textareaValue)){                //利用test()方法验证是否匹配正则表达式,匹配则返回true,反之则返回false
            console.log("输入的IP地址格式错误!")
            return
        } else {
            console.log("输入的IP地址格式正确!")
        }
    }
}

上述方法写的太绝对,如果不小心多复制了个空格,也会匹配错误,所以要对IP地址做一个格式处理。
思路如下:
例如输入的ip地址为:“127.0.0.1 \n127.0.0.1 \n127.0.0.1 ”

  • 首先通过换行符进行分割成一个数组; [127.0.0.1 ,127.0.0.1 ,127.0.0.1 ]
  • 遍历数组,通过replace()方法去掉所有的空格,再进行正则匹配验证
  • 最后通过join()方法转换成字符串格式
methods: {
    reg() {
        const reg = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/
        console.log('输入框的值', this.textareaValue)    //获取输入框的值
        let ipArray = this.textareaValue.split('\n')
                for (let i in ipArray) {
                    ipArray[i] = ipArray[i].replace(/\s/g, '')    //去掉数组元素的空格
           if(!reg.test(ipArray[i])) {        //数组每个元素进行正则匹配
                console.log(ipArray[i])        //可以打印出输入错误的IP
                console.log('IP地址输入格式有误!')
                return
            }
		}
		let newIP = ipArray.join()    //转成字符串格式
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌萌哒小可爱啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值