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);
            }
        }
  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/goloving/p/7001810.html
Copyright © 2011-2022 走看看