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); } }