我正在使用http://jqueryvalidation.org/插件进行客户端验证(是的,我也将确保服务器端验证)。
我想验证一个逗号分隔的IP地址列表。有许多验证IP的解决方案,下面的解决方案恰好包含在插件中。
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地址?
发布于 2013-12-29 15:45:26
这应该会做到这一点,除非您想要允许一个空列表:
/^((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 + ',')发布于 2013-12-29 15:55:12
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
https://stackoverflow.com/questions/20826789
复制相似问题