(1)IP Pattern拆分为源IP Pattern,目的IP Pattern,Port Pattern
拆分为源端口Pattern,目的端口Pattern (2)show more修改,并移动刀ipRegion.js中 (3)IP复用未作修改 (4)删除部分废弃的导入模板以及废弃的导入方法
This commit is contained in:
@@ -297,66 +297,21 @@ jQuery.validator.addMethod("protocolPort",function(value, element) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
//ip地址校验
|
||||
jQuery.validator.addMethod("ipCheck",function(value, element) {
|
||||
/**
|
||||
*将验证单独提出,源IP,目的IP分别调用该方法
|
||||
*/
|
||||
var validateIpPattern= function(ipType,ipPattern,value,element){
|
||||
var ipv4_ip_subnet_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\/(3[0-2]|1[6-9]|2[0-9])$/;
|
||||
var ipv6_ip_subnet_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([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}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))\/([2-9]|[1-9][0-9]|1[0-2][0-8])$/;
|
||||
var ipv4_ip_range_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)-(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/;
|
||||
var ipv6_ip_range_regexp= /^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([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}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))\-((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([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}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/;
|
||||
var ipv4_ip_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/;
|
||||
var ipv6_ip_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([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}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/;
|
||||
var name=$(element).attr("name");
|
||||
if(value.length==0||value.trim().length==0){return true;}
|
||||
var ipTypeE,ipPatternE,srcIpAddressE,destIpAddressE;
|
||||
if(name.indexOf("srcIpAddress")>-1){
|
||||
srcIpAddressE=$(element);
|
||||
ipTypeE=$("select[name='"+name.replace("srcIpAddress","ipType")+"']");
|
||||
ipPatternE=$("select[name='"+name.replace("srcIpAddress","ipPattern")+"']");
|
||||
destIpAddressE=$("input[name='"+name.replace("srcIpAddress","destIpAddress")+"']");
|
||||
}else if(name.indexOf("destIpAddress")>-1){
|
||||
destIpAddressE=$(element);
|
||||
ipTypeE=$("select[name='"+name.replace("destIpAddress","ipType")+"']");
|
||||
ipPatternE=$("select[name='"+name.replace("destIpAddress","ipPattern")+"']");
|
||||
srcIpAddressE=$("input[name='"+name.replace("destIpAddress","srcIpAddress")+"']");
|
||||
}
|
||||
var typeInt=ipTypeE.val();
|
||||
var ipPattern=ipPatternE.val();
|
||||
var srcIpAddress=srcIpAddressE.val();
|
||||
var destIpAddress=destIpAddressE.val();
|
||||
var srcIpIsHidden=srcIpAddressE.is(":hidden");
|
||||
var destIpIsHidden=destIpAddressE.is(":hidden");
|
||||
var IPv4RangeDefault="0.0.0.0-0.0.0.0";
|
||||
if(ipPattern==1){//ip/掩码格式
|
||||
srcIpAddress=srcIpAddress.indexOf("/") >-1 ?srcIpAddress.split("/")[0] : srcIpAddress;
|
||||
destIpAddress=destIpAddress.indexOf("/") >-1 ?destIpAddress.split("/")[0] : destIpAddress;
|
||||
}else if (ipPattern==2){
|
||||
srcIpAddress=srcIpAddress.indexOf("-") >-1 ?srcIpAddress.split("-")[0] : srcIpAddress;
|
||||
destIpAddress=destIpAddress.indexOf("-") >-1 ?destIpAddress.split("-")[0] : destIpAddress;
|
||||
}
|
||||
if(srcIpIsHidden){
|
||||
if((srcIpAddress == destIpAddress)){
|
||||
$.validator.messages.ipCheck=$.validator.messages.destIpIsNotValue+destIpAddress;
|
||||
return false;
|
||||
}
|
||||
}else if(destIpIsHidden){
|
||||
if((srcIpAddress == destIpAddress)){
|
||||
$.validator.messages.ipCheck=$.validator.messages.srcIpIsNotValue+srcIpAddress;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
if((srcIpAddress == destIpAddress)){
|
||||
$.validator.messages.ipCheck=$.validator.messages.srcIpNotEqDestIp+srcIpAddress
|
||||
+$.validator.messages.destIpNotEqDestIp+destIpAddress
|
||||
+$.validator.messages.IpNotEqDestIp;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(typeInt==4){
|
||||
if(ipType==4){
|
||||
if(ipPattern){
|
||||
if(ipPattern==1){//ip/掩码格式
|
||||
if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5<=32))){
|
||||
if(jQuery.validator.prototype.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5<=32))){
|
||||
if(ipv4_ip_subnet_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
@@ -407,7 +362,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) {
|
||||
return false;
|
||||
}
|
||||
}else if(ipPattern==3){//ip格式
|
||||
if(this.optional(element)||ipv4_ip_regexp.test(value)){
|
||||
if(jQuery.validator.prototype.optional(element)||ipv4_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
@@ -415,16 +370,16 @@ jQuery.validator.addMethod("ipCheck",function(value, element) {
|
||||
}
|
||||
}
|
||||
}else{//兼容原来的验证
|
||||
if(this.optional(element)||ipv4_ip_regexp.test(value)){
|
||||
if(jQuery.validator.prototype.optional(element)||ipv4_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}else if(typeInt==6){
|
||||
}else if(ipType==6){
|
||||
if(ipPattern==1){//ip/掩码格式
|
||||
if(this.optional(element)||ipv6_ip_subnet_regexp.test(value)){
|
||||
if(jQuery.validator.prototype.optional(element)||ipv6_ip_subnet_regexp.test(value)){
|
||||
return true;
|
||||
}else if(value.indexOf("/")==-1){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||
@@ -462,326 +417,14 @@ jQuery.validator.addMethod("ipCheck",function(value, element) {
|
||||
}
|
||||
return false;
|
||||
}else if(ipPattern==3){//ip格式
|
||||
if(this.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
if(jQuery.validator.prototype.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}else{//兼容原来的验证
|
||||
if(this.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}else if(typeInt==46){
|
||||
var name=$(element).attr("name");
|
||||
if(name.indexOf("srcIpAddress")>-1){
|
||||
if(ipPattern==1){//ip/掩码格式
|
||||
if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5<=32))){
|
||||
if(ipv4_ip_subnet_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMaskRange;
|
||||
return false;
|
||||
}
|
||||
}else if(RegExp.$5&&RegExp.$5>32){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMaskRange;
|
||||
return false;
|
||||
}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)){
|
||||
var startIp=value.split("-")[0];
|
||||
var endIp=value.split("-")[1];
|
||||
var startPart0=startIp.split(".")[0];
|
||||
var startPart1=endIp.split(".")[0];
|
||||
if(value==IPv4RangeDefault){
|
||||
return true;
|
||||
}
|
||||
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)){//仅允许同段IP
|
||||
if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小
|
||||
if((startIp.split(".")[0]!=endIp.split(".")[0])||
|
||||
(startIp.split(".")[1]!=endIp.split(".")[1])||
|
||||
(startIp.split(".")[2]!=endIp.split(".")[2])){
|
||||
$.validator.messages.ipCheck=$.validator.messages.netAddress;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange1;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||
return false;
|
||||
}
|
||||
}else if(ipPattern==3){//ip
|
||||
if(this.optional(element)||ipv4_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}else if(name.indexOf("destIpAddress")>-1){
|
||||
if(ipPattern==1){//ip/掩码格式
|
||||
if(this.optional(element)||ipv6_ip_subnet_regexp.test(value)){
|
||||
return true;
|
||||
}else if(value.indexOf("/")==-1){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||
return false;
|
||||
}else{
|
||||
var ipMaskArr=value.split("/");
|
||||
if(ipMaskArr.length!=2){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||
return false;
|
||||
}else{
|
||||
if(!ipv6_ip_regexp.test(ipMaskArr[0])){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipPart;
|
||||
return false;
|
||||
//}else if(!/^(0|2|4|8|16|32|64|128)$/.test(ipMaskArr[1])){
|
||||
}else if(!/^([2-9]|[1-9][0-9]|1[0-2][0-8])$/.test(ipMaskArr[1])){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipv6MaskPart;
|
||||
return false;
|
||||
} else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(ipPattern==2){//ip range
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||
if(ipv6_ip_range_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));
|
||||
return startPre==endPre;
|
||||
}
|
||||
return false;
|
||||
}else if(ipPattern==3){//ip格式
|
||||
if(this.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}else{//兼容原来的验证
|
||||
if(this.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(typeInt==64){
|
||||
var name=$(element).attr("name");
|
||||
if(name.indexOf("srcIpAddress")>-1){
|
||||
if(ipPattern==1){//ip/掩码格式
|
||||
if(this.optional(element)||ipv6_ip_subnet_regexp.test(value)){
|
||||
return true;
|
||||
}else if(value.indexOf("/")==-1){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||
return false;
|
||||
}else{
|
||||
var ipMaskArr=value.split("/");
|
||||
if(ipMaskArr.length!=2){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||
return false;
|
||||
}else{
|
||||
if(!ipv6_ip_regexp.test(ipMaskArr[0])){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipPart;
|
||||
return false;
|
||||
//}else if(!/^(0|2|4|8|16|32|64|128)$/.test(ipMaskArr[1])){
|
||||
}else if(!/^([2-9]|[1-9][0-9]|1[0-2][0-8])$/.test(ipMaskArr[1])){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipv6MaskPart;
|
||||
return false;
|
||||
} else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMask;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(ipPattern==2){//ip range
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||
if(ipv6_ip_range_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));
|
||||
return startPre==endPre;
|
||||
}
|
||||
return false;
|
||||
}else if(ipPattern==3){//ip格式
|
||||
if(this.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}else{//兼容原来的验证
|
||||
if(this.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}else if(name.indexOf("destIpAddress")>-1){
|
||||
if(ipPattern==1){//ip/掩码格式
|
||||
if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5<=32))){
|
||||
if(ipv4_ip_subnet_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMaskRange;
|
||||
return false;
|
||||
}
|
||||
}else if(RegExp.$5&&RegExp.$5>32){
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipMaskRange;
|
||||
return false;
|
||||
}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)){
|
||||
var startIp=value.split("-")[0];
|
||||
var endIp=value.split("-")[1];
|
||||
var startPart0=startIp.split(".")[0];
|
||||
var startPart1=endIp.split(".")[0];
|
||||
if(value==IPv4RangeDefault){
|
||||
return true;
|
||||
}
|
||||
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)){//仅允许同段IP
|
||||
if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小
|
||||
if((startIp.split(".")[0]!=endIp.split(".")[0])||
|
||||
(startIp.split(".")[1]!=endIp.split(".")[1])||
|
||||
(startIp.split(".")[2]!=endIp.split(".")[2])){
|
||||
$.validator.messages.ipCheck=$.validator.messages.netAddress;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange1;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||
return false;
|
||||
}
|
||||
}else if(ipPattern==3){//ip
|
||||
if(this.optional(element)||ipv4_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(typeInt==10){
|
||||
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)){
|
||||
var startIp=value.split("-")[0];
|
||||
var endIp=value.split("-")[1];
|
||||
var startPart0=startIp.split(".")[0];
|
||||
var startPart1=endIp.split(".")[0];
|
||||
if(value==IPv4RangeDefault){
|
||||
return true;
|
||||
}
|
||||
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)){//仅允许同段IP
|
||||
if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小
|
||||
if((startIp.split(".")[0]!=endIp.split(".")[0])||
|
||||
(startIp.split(".")[1]!=endIp.split(".")[1])||
|
||||
(startIp.split(".")[2]!=endIp.split(".")[2])){
|
||||
$.validator.messages.ipCheck=$.validator.messages.netAddress;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange1;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ipRange;
|
||||
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))){
|
||||
if(jQuery.validator.prototype.optional(element)||ipv6_ip_regexp.test(value)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
@@ -792,6 +435,120 @@ jQuery.validator.addMethod("ipCheck",function(value, element) {
|
||||
$.validator.messages.ipCheck=$.validator.messages.ip;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 校验IP V4范围交叉
|
||||
*/
|
||||
var validateIPV4Range=function(srcIp,destIp){
|
||||
var ipv4_ip_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/;
|
||||
var srcStart=0,srcEnd=0,destStart=0,destEnd=0;
|
||||
if(srcIp.indexOf("-") >-1){
|
||||
if(ipv4_ip_regexp.test(srcIp.split('-')[0])){
|
||||
srcStart=ipToNumber(srcIp.split('-')[0]);
|
||||
}
|
||||
if(ipv4_ip_regexp.test(srcIp.split('-')[1])){
|
||||
srcEnd=ipToNumber(srcIp.split('-')[1]);
|
||||
}
|
||||
}
|
||||
if(destIp.indexOf("-") >-1){
|
||||
if(ipv4_ip_regexp.test(destIp.split('-')[0])){
|
||||
destStart=ipToNumber(destIp.split('-')[0]);
|
||||
}
|
||||
if(ipv4_ip_regexp.test(destIp.split('-')[1])){
|
||||
destEnd=ipToNumber(destIp.split('-')[1]);
|
||||
}
|
||||
}
|
||||
if(srcStart>0||srcEnd>0){
|
||||
if(destStart>0||destEnd>0){
|
||||
if(srcStart>destEnd||srcEnd<destStart){
|
||||
}else{
|
||||
var tip=$.validator.format($.validator.messages.rangeCross1);
|
||||
$.validator.messages.ipCheck=tip(srcIp,destIp);
|
||||
return false;
|
||||
}
|
||||
}else if(ipv4_ip_regexp.test(destIp)){
|
||||
if(srcStart<=ipToNumber(destIp)&&ipToNumber(destIp)<=srcEnd){
|
||||
var tip=$.validator.format($.validator.messages.rangeCross0);
|
||||
$.validator.messages.ipCheck=tip(destIp,srcIp.split('-')[0],srcIp.split('-')[1]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}else if(destStart>0||destEnd>0){
|
||||
if(ipv4_ip_regexp.test(srcIp)){
|
||||
if(destStart<=ipToNumber(srcIp)&&ipToNumber(srcIp)<=destEnd){
|
||||
var tip=$.validator.format($.validator.messages.rangeCross0);
|
||||
$.validator.messages.ipCheck=tip(srcIp,destIp.split('-')[0],destIp.split('-')[1]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
//$.validator.messages.ipCheck="";
|
||||
return true;
|
||||
}
|
||||
//ip地址校验
|
||||
jQuery.validator.addMethod("ipCheck",function(value, element) {
|
||||
var name=$(element).attr("name");
|
||||
if(value.length==0||value.trim().length==0){return true;}
|
||||
var ipTypeE,srcIpPatternE,descIpPatternE,srcIpAddressE,destIpAddressE;
|
||||
if(name.indexOf("srcIpAddress")>-1){
|
||||
srcIpAddressE=$(element);
|
||||
ipTypeE=$("select[name='"+name.replace("srcIpAddress","ipType")+"']");
|
||||
srcIpPatternE=$("select[name='"+name.replace("srcIpAddress","srcIpPattern")+"']");
|
||||
destIpPatternE=$("select[name='"+name.replace("srcIpAddress","destIpPattern")+"']");
|
||||
destIpAddressE=$("input[name='"+name.replace("srcIpAddress","destIpAddress")+"']");
|
||||
}else if(name.indexOf("destIpAddress")>-1){
|
||||
destIpAddressE=$(element);
|
||||
ipTypeE=$("select[name='"+name.replace("destIpAddress","ipType")+"']");
|
||||
srcIpPatternE=$("select[name='"+name.replace("destIpAddress","srcIpPattern")+"']");
|
||||
destIpPatternE=$("select[name='"+name.replace("destIpAddress","destIpPattern")+"']");
|
||||
srcIpAddressE=$("input[name='"+name.replace("destIpAddress","srcIpAddress")+"']");
|
||||
}
|
||||
var typeInt=ipTypeE.val();
|
||||
var srcIpPattern=srcIpPatternE.val();
|
||||
var destIpPattern=destIpPatternE.val();
|
||||
var srcIpAddress=srcIpAddressE.val();
|
||||
var destIpAddress=destIpAddressE.val();
|
||||
var srcIpIsHidden=srcIpAddressE.is(":hidden");
|
||||
var destIpIsHidden=destIpAddressE.is(":hidden");
|
||||
if(srcIpPattern==1){//ip/掩码格式
|
||||
srcIpAddress=srcIpAddress.indexOf("/") >-1 ?srcIpAddress.split("/")[0] : srcIpAddress;
|
||||
}else if (srcIpPattern==2){
|
||||
srcIpAddress=srcIpAddress.indexOf("-") >-1 ?srcIpAddress.split("-")[0] : srcIpAddress;
|
||||
}
|
||||
if(destIpPattern==1){//ip/掩码格式
|
||||
destIpAddress=destIpAddress.indexOf("/") >-1 ?destIpAddress.split("/")[0] : destIpAddress;
|
||||
}else if (destIpPattern==2){
|
||||
destIpAddress=destIpAddress.indexOf("-") >-1 ?destIpAddress.split("-")[0] : destIpAddress;
|
||||
}
|
||||
if(srcIpIsHidden){
|
||||
if((srcIpAddress == destIpAddress)){
|
||||
$.validator.messages.ipCheck=$.validator.messages.destIpIsNotValue+destIpAddress;
|
||||
return false;
|
||||
}
|
||||
}else if(destIpIsHidden){
|
||||
if((srcIpAddress == destIpAddress)){
|
||||
$.validator.messages.ipCheck=$.validator.messages.srcIpIsNotValue+srcIpAddress;
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
if((srcIpAddress == destIpAddress)){
|
||||
$.validator.messages.ipCheck=$.validator.messages.srcIpNotEqDestIp+srcIpAddress
|
||||
+$.validator.messages.destIpNotEqDestIp+destIpAddress
|
||||
+$.validator.messages.IpNotEqDestIp;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var srcValid=true,destValid=true;
|
||||
if(name.indexOf("srcIpAddress")>-1){
|
||||
srcValid=validateIpPattern(typeInt,srcIpPattern,value, element);
|
||||
}else{
|
||||
destValid=validateIpPattern(typeInt,destIpPattern,value, element);
|
||||
}
|
||||
if(srcValid&&destValid){
|
||||
return validateIPV4Range(srcIpAddressE.val().indexOf("/")>-1?srcIpAddressE.val().split('/')[0]:srcIpAddressE.val(),destIpAddressE.val().indexOf("/")>-1?destIpAddressE.val().split('/')[0]:destIpAddressE.val());
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}, $.validator.messages.ip);
|
||||
//ip地址掩码校验
|
||||
jQuery.validator.addMethod("ipMask",function(value, element) {
|
||||
@@ -817,15 +574,17 @@ jQuery.validator.addMethod("ipMask",function(value, element) {
|
||||
}, $.validator.messages.ipMask);
|
||||
jQuery.validator.addMethod("portCheck",function(value, element) {
|
||||
if(value.length==0||value.trim().length==0){return true;}
|
||||
var typeInt=$(element).parents(".row").parent(".row").find("select[name$='portPattern']").val();
|
||||
if(typeInt==1){//port 0~65535
|
||||
var name=$(element).attr("name");
|
||||
|
||||
var portPattern=$(element).parents(".row").parent(".row").find("select[name$='"+name+"Pattern']").val();
|
||||
if(portPattern==1){//port 0~65535
|
||||
if(this.optional(element)||(/^(0|[1-9][0-9]{0,4})$/.test(value)&& RegExp.$1 <=65535)){
|
||||
return true;
|
||||
}else{
|
||||
$.validator.messages.portCheck=$.validator.messages.portRange
|
||||
return false;
|
||||
}
|
||||
}else if(typeInt==2){// port -mask 0~65535/0~65535
|
||||
}else if(portPattern==2){// port -mask 0~65535/0~65535
|
||||
if(this.optional(element)||(/^(0|[1-9][0-9]{0,4})\/(0|[1-9][0-9]{0,4})$/.test(value) && RegExp.$1 <=65535 && RegExp.$2 <=65535)){
|
||||
return true;
|
||||
}else{
|
||||
@@ -855,9 +614,12 @@ jQuery.validator.addMethod("areaControl",function(value, element) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
/*
|
||||
jQuery.validator.addMethod("areaIp",function(value, element) {
|
||||
var typeInt=$(element).parents(".row").parent(".row").find("select[name$='ipType']").val();
|
||||
var ipPattern=$(element).parents(".row").parent(".row").find("select[name$='ipPattern']").val();
|
||||
var name=$(element).attr(name);
|
||||
var srcIpPattern=$(element).parents(".row").parent(".row").find("select[name$='srcIpPattern']").val();
|
||||
var destIpPattern=$(element).parents(".row").parent(".row").find("select[name$='destIpPattern']").val();
|
||||
var msg=$.validator.messages.areaIpPrefix;
|
||||
if(typeInt==4){
|
||||
if(ipPattern==3){
|
||||
@@ -907,6 +669,7 @@ jQuery.validator.addMethod("areaIp",function(value, element) {
|
||||
}
|
||||
}
|
||||
});
|
||||
*/
|
||||
jQuery.validator.addMethod("checkParent",function(value, element) {
|
||||
var parentType=$(element).attr("parent-type");
|
||||
if(parentType&&parentType!=0&&parentType!=value){
|
||||
|
||||
Reference in New Issue
Block a user