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
    评论
你可以使用JavaScript来限制input输入框只能输入一个IP地址。首先,你需要使用正则表达式来验证输入IP地址是否合法。然后,你可以使用JavaScript的事件监听器来捕获用户输入,并进行验证和限制。 以下是一个简单的示例: ```html <input type="text" id="ip-address" pattern="\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" oninput="limitIpAddresses()"> <script> function limitIpAddresses() { var input = document.getElementById("ip-address"); var ipAddress = input.value; // 验证输入IP地址是否合法 if (!isValidIpAddress(ipAddress)) { input.setCustomValidity("Invalid IP address"); } else { input.setCustomValidity(""); } // 如果输入框中已经有一个IP地址,则阻止用户继续输入 if (input.value.match(/\./g).length >= 3) { input.blur(); } } function isValidIpAddress(ipAddress) { var regex = /^(\d{1,3}\.){3}\d{1,3}$/; return regex.test(ipAddress); } </script> ``` 在这个示例中,我们使用`pattern`属性来指定一个匹配IP地址的正则表达式,使用`oninput`事件监听器来捕获用户输入。在`limitIpAddresses`函数中,我们首先使用`isValidIpAddress`函数来验证输入IP地址是否合法。如果不合法,我们使用`setCustomValidity`方法来设置一个自定义的错误消息。如果合法,则清除错误消息。 然后,我们使用`match`方法来检查输入框中已经输入了多少个`.`字符,如果已经输入了3个,则使用`blur`方法来使输入框失去焦点,阻止用户继续输入IP地址

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

萌萌哒小可爱啦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值