自己写的一个校验IP、IP掩码、IP段的方法
JSvar ipNum=0; function getKey(){ if(event.keyCode==13){ var ip= $('#testip').val(); if(testIp(ip,1)){ $('#testip').val("") } } if(ipNum>4278124287){ alert("超出IP总数"); $('#testip').val(ip) return; } $('#ipnum').text(`以输入的IP总数为${ipNum}`) $('#iplist').val(ipNum) } $('#iplist').on('click','.ipdelete',function(e){ ipNum=$('#iplist').val()-e.target.parentNode.value; e.target.parentNode.remove(); $('#ipnum').text(`以输入的IP总数为${ipNum}`) $('#iplist').val(ipNum) e.preventDefault(); }) //type 为1的话会生成list 只想使用IP校验功能直接传IP function testIp(ip,type){ var ip_patrn =/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/; var ip_mask = /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))\/(([0-9])|([1-2][0-9])|([3][0-2]))$/; if(!type){ type==0; } if(ip!=""){ if(ip.indexOf("-")!=-1){ var ipOrigan=ip; ip=ip.split("-"); if(ip_patrn.test(ip[0])&&ip_patrn.test(ip[1])){ //先验证是否是IP 在验证是否是正确的IP段 再计算IP数量 var start = ip[0].split('.'); var end = ip[1].split('.'); var start_ip=start[0] * 256 * 256 * 256 + start[1] * 256 * 256 + start[2] * 256 + start[3]*1; var end_ip=end[0] * 256 * 256 * 256 + end[1] * 256 * 256 + end[2] * 256 + end[3]*1; if((end_ip - start_ip)>0){ ipNum=end_ip - start_ip+1+ipNum; if(type==1&&ipNum<=4278124287){ $("#iplist").append(`