自己写的一个校验IP、IP掩码、IP段的方法封装到了JQ中,方便了使用者的使用...
使用者只需要在js中调用方法并传入一个ID即可生成验证工具 $("#IP").ipInput().Init();
<div id="IP"></div>
(function() {var ipInputer = function (ele) {this.$element = ele;}ipInputer.prototype = {Init: function() {var tample = '<div class="modal-border">'+'<div class="tip tipstxt"><div class="inner"></div><div style="margin:4px;"> IP格式:1.1.1.1</br> IP段格式:1.1.1.1-2.2.2.2</br> IP掩码格式:1.1.1.1/32</div></div>'+'<div class="modal-body-item col-md-12">'+'<div class="col-md-12 input-group">'+'<input type="text" class="ip-input form-control" placeholder="请输入合法IP">'+'<i class="fa fa-info tips" style="color:blue"></i>'+'<span class="input-group-btn">'+'<button class="btn btn-default ip-input-add-button btn_right">添加</button>'+'</span>'+'</div>'+'<div class="ip-list" class="col-md-12 input-group">'+'</div>'+'</div>'+'<div class="modal-body-item col-md-12">'+'<div class="col-md-12">'+'已输入的IP总个数为<span class="ip-number">0</span>'+'</div>'+'</div>'+'</div>';var ipNum=0;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]))$/;this.$element.html(tample);function CreatDom(e){var ip = e.data.$element.find(".ip-input").val();var oldipNum=e.data.$element.attr("ipunm");if(oldipNum==undefined){oldipNum=0;}oldipNum=oldipNum*1;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+oldipNum;if(ipNum<=4278124287){e.data.$element.find(".ip-list").append(`<div class="input-group"><input type="text" class="form-control" placeholder="" value="${ipOrigan}" class="addIpShow" ipunm=${end_ip - start_ip+1} disabled> <span class="input-group-btn"><button class="btn btn-default ipdelete btn_right">删除</button></span></div>`);e.data.$element.attr("ipunm",ipNum)e.data.$element.find('.ip-number').text(ipNum)e.data.$element.find(".ip-input").val("")}else{alert('超过最大ip数量')return false;} }else{e.data.$element.find(".ip-input").val(ipOrigan);alert('前后IP大小输入有误');return false;}}else{e.data.$element.find(".ip-input").val(ip);alert('请检查IP段格式');return false;}}else if(ip.indexOf("/")!=-1){ //验证是否是正确的IP掩码 在计算数量if(ip_mask.test(ip)){var p=32-ip.slice(ip.indexOf("/")+1)var pnum=1;while(p){pnum=2*pnum;p--;}ipNum=oldipNum+pnum;if(ipNum<=4278124287){e.data.$element.find(".ip-list").append(`<div class="input-group"><input type="text" name="" class="form-control" placeholder="" value="${ip}" class="addIpShow" ipunm=${pnum} disabled> <span class="input-group-btn"><button class="btn btn-default ipdelete btn_right">删除</button></div>`)e.data.$element.attr("ipunm",ipNum)e.data.$element.find('.ip-number').text(ipNum)e.data.$element.find('.ip-input').val("")}else{alert('超过最大ip数量')return false;}}else{e.data.$element.find('.ip-input').val(ip)alert('请检查IP掩码格式')return false;}}else{if(!ip_patrn.test(ip)){ //验证是否是IPalert("请检查IP格式");return false;}ipNum=oldipNum+1if(ipNum<=4278124287){e.data.$element.find(".ip-list").append(`<div class="input-group"><input type="text" name="" class="form-control" placeholder="" value="${ip}" class="addIpShow" ipunm=1 disabled> <span class="input-group-btn"><button class="btn btn-default ipdelete btn_right">删除</button></div>`)e.data.$element.attr("ipunm",ipNum)e.data.$element.find('.ip-number').text(ipNum)e.data.$element.find('.ip-input').val("")}else{alert('超过最大ip数量')return false;}}}else{alert("请输入");return false;} }this.$element.off();this.$element.on("click",".ip-input-add-button",this,function(e){e.stopPropagation() CreatDom(e) }); this.$element.on("mouseover",".tips",this,function(e){ e.data.$element.find('.tipstxt').css("display","block")}); this.$element.on("mouseleave",".tips",this,function(e){ e.data.$element.find('.tipstxt').css("display","none")}); this.$element.on("click",".ipdelete",this,function(e){ipNum=e.data.$element.attr("ipunm")-$(this).parent().parent().children(":nth-child(1)").attr("ipunm");$(this).parent().parent().remove();e.data.$element.find('.ip-number').text(ipNum)e.data.$element.attr("ipunm",ipNum)})this.$element.on("keydown",".ip-input",this,function(e){e.stopPropagation() if(e.which==13){CreatDom(e)}})},Remove:function(){this.$element.off();this.$element.empty();this.$element.attr("ipunm",0)},}$.fn.ipInput = function() {//创建Beautifier的实体var ipInput = new ipInputer(this);//调用其方法return ipInput;// return ipInput.Init(); } })();
转载于:https://www.cnblogs.com/wwx875075608/p/9174496.html
自己写的一个校验IP、IP掩码、IP段的方法封装到了JQ中,方便了使用者的使用...相关推荐
- sand java_我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,...
我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,就是无法连续调用,就是如果调用一次就退出然后再运行就可以,如果用完了,再主方法里选择... 我在san ...
- Linux下实现一个网卡绑定多个IP地址
在我们用Linux来架设Web服务器和FTP服务器的时候有可能会遇到在一台服务其上实现多个站点的需要(虚拟主机),这种情况下我们可以通过增加物理网卡,来解决.但是我们的服务器上会有多少多余的扩展槽呢? ...
- 面试题整理17 输入一个字符串判断一个字符串是否是有效ip地址
题目:输入一个字符串判断字符串是否为有效ip地址, ip地址的形式为XXX.XXX.XXX.XXX.对于XXX表示为0-256的数,但是如果第一位是0而且整数不为0则是非法的,如01 不允许使用 ...
- 【华为云技术分享】《跟唐老师学习云网络》 — IP和掩码
[摘要] 我们下面接着上次第二篇开启讲解IP和掩码知识,如有疑问点欢迎下方评论一起交流. 一.主机的门牌号(IP地址) 当接入到网络里面的主机数量越来越多,每台主机都需要的门牌号(IP地址)数量就越来 ...
- 用php写出显示客户端ip与服务器ip的代码.,PHP面试题答案
PHP面试题答案 1.求$a,$b,$c三个数中的最大值和最小值(5分) echo max($a,$b,$c); echo min($a,$b,$c); 2.echo().print().print_ ...
- Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算网段(IPV4和IPV6)
Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算所有IP地址(IPV4和IPV6) 计算IP列表 IPV4 IPV6 IP校验 IPV4 IPV6 计算IP列表 IPV4 1.需要的j ...
- linux多网卡配置ip地址(linux一个网卡配置多个ip)
Linux如何配置ip地址 1.打开Linux终端系统,然后在系统中输入如下代码. 2.然后开始填写ip地址.子网掩码.网关等命令代码,如图所示. 3.在终端填写完之后,进行保存然后退出. 4.接着把 ...
- 已知ip和掩码,求子网的ip范围
已知IP地址为128.14.35.7/20是某CIDR地址块中的一个地址,为什么它所在地址块的最小地址是128.14.32.0并且最大地址是128.14.47.255? 因为ip地址32位二进制,用点 ...
- 一个通过捕获ARP发现IP的小工具
0 由来 公司接入层交换机划分了很多Vlan,每个Vlan对应一个IP子网,各个房间所属Vlan号非常混乱.有时候,电脑IP丢失或新配电脑时,不能知道到底该配置那个IP网段.解决办法就是,登录交换机, ...
- 引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应
引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应 ...
最新文章
- 【转】C#生成验证码
- MySQL 的实时性能监控利器
- ES6之主要知识点(二) 变量的解构赋值。默认值
- windows java路径问题_java 文件路径问题
- 视觉slam学习笔记以及课后习题《第五讲特征点法视觉里程计》
- Swift和R3联手了,跨境支付市场竞争升级
- PES实况足球2018 中文版下载解说 中超德甲亚冠世界杯夏季转会 全dlc
- 静态代码自动扫描p3c的使用
- MIUI主题风格_一种Android系统换肤功能的设计
- 找到了airdrop无法发现对方的原因了,原因你想不到!
- Win8 许可证过期怎么重新激活?
- springcloud采坑-jason序列化中的Date对象
- 邮件营销EDM模板制作规范
- 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)
- PCI GXL学习之安装篇
- 【行人轨迹预测数据集——ETH、UCY】
- Spring Security Oauth2 认证流程
- 打造爆款产品需要注意什么
- CMemoryDC(是吕鑫写的版本)
- 2020.3.29总结
热门文章
- 用js两张图片合并成一张图片
- matlab tanh导数,谁知道tanh(x)的二阶导数-tanh-数学-郝啪韭同学
- Golang 中map与GC“纠缠不清”的关系
- AtCoder从小白到大神的进阶攻略
- 会计如何使用计算机,2020年高级会计师考试如何使用计算器?(图文说明)
- 【动力学】汽车性能仿真系统含Matlab源码
- A4988驱动步进电机教学
- 装完金蝶电脑无限重启_电脑一直自动重启的原因与解决方法
- 三个月华为od工作感受:关于转正,身份和适合谁
- [BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)