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;
}
调用:οnblur="validateIp(this)"
function addFilterIp(){
var append='<div class="filter_ip_div" style="margin-top:5px;">'
+'<input type="text" class="form-control " style="width:135.5px;display:inline" οnblur="validateIp(this)">'
+'~<input type="text" class="form-control " style="width:135.5px;display:inline" οnblur="validateIp(this)">'
+'<img src="${basePath}/images/delete.png" οnclick="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); } }