文本框输入多个IP用逗号隔开js校验方法

这里提供两种方法:

 

   1.正则表达式

       // 多IP的验证
jQuery.validator.addMethod("s_ips", function(value, element) {
var s_ips = /^(?:(?:^|,)(?:[0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(?:\.(?:[0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})+$/;
return this.optional(element) || (s_ips.test(value));
}, "格式不正确");

 

   2.js function手动校验

     

  function testIpList() {
    // 把 ips 按逗号拆成 IP 数组,分别进行验证
    // every 表示每个 ip 验证通过才算通过
    var ips = $("#ips").val();
    return ips.split(",")
        .every(ip => {
            // 把每个 IP 拆成几段
            const segments = ip.split(".");
            // 如果是精确的 4 段而且每段转换成数字都在 1~255 就对了
            
            if(segments.length === 4
                && segments
                    .map(segment => parseInt(segment, 10) || 0)
                    .every(n => n >= 0 && n <= 255)){
                    alert("true");
                    return true;
                    }
                    alert("false");
            return false;
        });

    

测试demo 

你可能感兴趣的:(web前端,java,javascript,validate)