校验IPv4和IPv6地址和URL地址

1、校验IPV4地址:

function validateIp(obj) {
	var ip=$(obj).val();
	var re=/^(d+).(d+).(d+).(d+)$/;//正则表达式     
	if(re.test(ip))     
	{     
	if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)   
	return true;     
	}  
	$(obj).val("");
	dialogTop('<s:text name='cems.valid.ipIllegal'></s:text>',"alert alert-warning");
	return false;  	
}

 调用:onblur="validateIp(this)"

function addFilterIp(){
	var append='<div class="filter_ip_div" style="margin-top:5px;">'
		+'<input type="text" class="form-control " style="135.5px;display:inline" onblur="validateIp(this)">'
		+'~<input type="text" class="form-control " style="135.5px;display:inline" onblur="validateIp(this)">'
		+'<img src="${basePath}/images/delete.png" onclick="delFilterIp(this)"/></div>';
	$("#filter_ip_td").append(append);
	//if($("#filter_begin_ip").val() && $("#filter_end_ip").val()){
	//	$("#filter_ip_td").append(append);
	//};
	controlButton("filterItem_window");
}

2、检验IPV6地址:

function isIPv6(str){
	if(str.indexOf(":") >= 0){//需要加上判断:号是否存在,因为如果不存在冒号,就没必要走进来判断;同时如果没有冒号,会报错:cann't read "length" of null
		return str.match(/:/g).length<=7 && /::/.test(str) ? /^([da-f]{1,4}(:|::)){1,6}[da-f]{1,4}$/i.test(str) : /^([da-f]{1,4}:){7}[da-f]{1,4}$/i.test(str);
	}
}

 3、优化后的IPV4校验和执行函数:

function isIPv4(str){
	var re=/^(d+).(d+).(d+).(d+)$/;//正则表达式     
	if(re.test(str)){     
	    if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)   
	    return true;  
	};
}
function validateIp(obj) {
	 var ip=$(obj).val(); 
	 if(isIPv4(ip) || isIPv6(ip))     
	 {  
	     return true;     
	 }  
	 $(obj).val("");
	 dialogTop('<s:text name='cems.valid.ipIllegal'></s:text>',"alert alert-warning");
	 return false;	
}

 4、IP地址大小校验

/**
 *    验证后面的IP是否比前面的大
 */
function ipIsLarge(startIp,endIp) {
    endIp = _ip2int(endIp);  
    startIp = _ip2int(startIp);
    if (endIp>=startIp) {  
        return true;
    } else {
        dialogMsg("终止IP必须大于等于起始IP",0);
        return false;
    }
}
//IP转成整型
function _ip2int(ip) {
    var num = 0;
    ip = ip.split(".");
    num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
    num = num >>> 0;
    return num;
}
/*验证是否添加了相同的ip段*/
function isDiffrentIP(ipBegin, ipEnd){
    var num=$("#"+tableId).jqGrid("getRowData").length;
    for(var i = 0; i < num; i++){
        if((ipBegin === $("#"+tableId).jqGrid("getRowData")[i].ipBegin) && (ipEnd === $("#"+tableId).jqGrid("getRowData")[i].ipEnd)){
            dialogMsg("请不要输入重复的ip段",0);
            return false;
        }
    }
    return true;
}

 5、URL地址校验

//网址验证
    function isURL(str_url){
        var reg=/(http|ftp|https)://[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?/;
        if (reg.test(str_url)){
            return (true);
        }else{
            return (false);
        }
    }
原文地址:https://www.cnblogs.com/goloving/p/7001810.html