zoukankan      html  css  js  c++  java
  • 校验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);
            }
        }
  • 相关阅读:
    03_ if 练习 _ little2big
    uva 11275 3D Triangles
    uva 12296 Pieces and Discs
    uvalive 3218 Find the Border
    uvalive 2797 Monster Trap
    uvalive 4992 Jungle Outpost
    uva 2218 Triathlon
    uvalive 3890 Most Distant Point from the Sea
    uvalive 4728 Squares
    uva 10256 The Great Divide
  • 原文地址:https://www.cnblogs.com/goloving/p/7001810.html
Copyright © 2011-2022 走看看