IP Type All验证
This commit is contained in:
@@ -558,6 +558,90 @@ jQuery.validator.addMethod("ipCheck",function(value, element) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else if(typeInt==10){
|
||||||
|
var ipv4_ip_subnet_regexp=/^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\/(3[0-2]|[1-2][0-9]|[0-9])$/;
|
||||||
|
var ipv6_ip_subnet_regexp=/^\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*\/(0|2|4|8|16|32|64|128)$/;
|
||||||
|
var ipv4_ip_range_regexp=/^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}-(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/;
|
||||||
|
var ipv6_ip_range_regexp=/^\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*-\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/;
|
||||||
|
var ipv4_ip_regexp=/^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/;
|
||||||
|
var ipv6_ip_regexp=/^\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/;
|
||||||
|
if(ipPattern){
|
||||||
|
if(ipPattern==1){//ip/掩码格式
|
||||||
|
if(ipv4_ip_subnet_regexp.test(value)){
|
||||||
|
return true;
|
||||||
|
}else if(ipv6_ip_subnet_regexp.test(value)){
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}else if(ipPattern==2){//ip range
|
||||||
|
//A类 0.0.0.0-127.255.255.255 默认掩码255.0.0.0
|
||||||
|
//B类128.0.0.0-191.255.255.255 默认掩码255.255.0.0
|
||||||
|
//C类192.0.0.0-223.255.255.255 默认掩码255.255.255.0
|
||||||
|
if(ipv4_ip_range_regexp.test(value)){
|
||||||
|
if(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\-(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value)&&(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5 <256 && RegExp.$6<256 && RegExp.$7<256 && RegExp.$8<256)){
|
||||||
|
var startPart0= RegExp.$1;
|
||||||
|
var startPart1= RegExp.$5;
|
||||||
|
if((startPart0<128&&startPart1<128)||(startPart0>127&&startPart1>127&&startPart0<192&&startPart1<192)
|
||||||
|
||(startPart0>191&&startPart1>191&&startPart0<224&&startPart1<224)
|
||||||
|
||(startPart0>223&&startPart1>223&&startPart0<240&&startPart1<240)
|
||||||
|
||(startPart0>239&&startPart1>239&&startPart0<256&&startPart1<256)){
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var startIp=value.split("-")[0];
|
||||||
|
var endIp=value.split("-")[1];
|
||||||
|
if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ipRange1;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}else if(ipv6_ip_subnet_regexp.test(value)){
|
||||||
|
var ipArr=value.split("-");
|
||||||
|
var startIp=fillIp(ipArr[0]);
|
||||||
|
var endIp=fillIp(ipArr[1]);
|
||||||
|
//默认比较前64位
|
||||||
|
var exp1=/^[0-9A-Fa-f]*:[0-9A-Fa-f]*:[0-9A-Fa-f]*:[0-9A-Fa-f]*/;
|
||||||
|
var startPre=String(startIp.match(exp1));
|
||||||
|
var endPre=String(endIp.match(exp1));
|
||||||
|
if(startPre!=endPre){
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||||
|
return false;
|
||||||
|
}else{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(ipPattern==3){//ip格式
|
||||||
|
if(ipv4_ip_regexp.test(value)||ipv6_ip_regexp.test(value)){
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{//兼容原来的验证
|
||||||
|
if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256))){
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}, $.validator.messages.ip);
|
}, $.validator.messages.ip);
|
||||||
//ip地址掩码校验
|
//ip地址掩码校验
|
||||||
|
|||||||
Reference in New Issue
Block a user