首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展jQuery验证方法以验证多个CSV地址

问扩展jQuery验证方法以验证多个CSV地址
EN

Stack Overflow用户
提问于 2013-12-29 15:33:46
回答 2查看 694关注 0票数 1

我正在使用http://jqueryvalidation.org/插件进行客户端验证(是的,我也将确保服务器端验证)。

我想验证一个逗号分隔的IP地址列表。有许多验证IP的解决方案,下面的解决方案恰好包含在插件中。

代码语言:javascript
复制
jQuery.validator.addMethod("ipv4", function(value, element, param) {
    return this.optional(element) || /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i.test(value);
}, "Please enter a valid IP v4 address.");

但是,如前所述,我希望验证由逗号分隔的多个I。如何将此方法扩展为验证由逗号分隔的0或多个IP地址?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-29 15:45:26

这应该会做到这一点,除非您想要允许一个空列表:

代码语言:javascript
复制
/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),)+$/i.test(value + ',')
票数 3
EN

Stack Overflow用户

发布于 2013-12-29 15:55:12

代码语言:javascript
复制
jQuery.validator.addMethod('validIP', function(value) {

    if (!value.length)
        return true

    list_ip = value.split(',');

    for(j = 0; j< list_ip.length; j++){
        var split = list_ip[j].split('.');

        if (split.length != 4)
            return false;
        for (var i=0; i<split.length; i++) {
            var s = split[i];
            if (s.length==0 || isNaN(s) || s<0 || s>255)
                return false;
        }

        }, ' Invalid IP Address');
    return true
    }



    Usage:

    jQuery("#myForm").validate({
    rules: {
        name: {
            validIP: true
        }
    }
}

这将返回false,如果甚至有一个字符串不是一个适当的ip。

返回空字符串的true

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20826789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档