js ip检验/子网掩码校验/网关校验代码

 ip校验

   // ip校验
            function check(ip) {
                var re =
                    /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
                var bl = re.test(ip);
                if (!bl) {
                    return 'IP格式错误,范例:192.168.255.255'
                }
            

子网掩码校验

 // 子网掩码校验
            function validateMask(MaskStr) {
                var IPArray = MaskStr.split(".");
                var ip1 = parseInt(IPArray[0]);
                var ip2 = parseInt(IPArray[1]);
                var ip3 = parseInt(IPArray[2]);
                var ip4 = parseInt(IPArray[3]);

                if ((ip1 < 0 || ip1 > 255) || (ip2 < 0 || ip2 > 255) || (ip3 < 0 || ip3 > 255) || (ip4 <
                        0 ||
                        ip4 > 255)) {
                    return false;
                }

                var ip_binary = _checkIput_fomartIP(ip1) + _checkIput_fomartIP(ip2) + _checkIput_fomartIP(
                        ip3) +
                    _checkIput_fomartIP(ip4);

                if (-1 != ip_binary.indexOf("01")) {
                    return false;
                }

                return true;
            }

            function _checkIput_fomartIP(ip) {
                return (ip + 256).toString(2).substring(1); //格式化输出(补零) 
            }

网关校验: 


            /**
             * func: 网关校验: 校验IP地址,子网掩码和默认网关的关系是否正确
             * w是默认网关,y是子网掩码,i是IP地址。
             * */
            function checkIp(w, y, i) {
                var ws = w.split('.');
                var ys = y.split('.');
                var is = i.split('.');
                for (var index in ws) {
                    var cw = to8Bit(ws[index]);
                    var cy = to8Bit(ys[index]);
                    var ci = to8Bit(is[index]);
                    for (var jndex = 0; jndex < 8; jndex++) {
                        if (cy[jndex] == "1") {
                            if (cw[jndex] != ci[jndex]) return false;
                        }
                    }
                }
                return true;
            }

            function to8Bit(number) {
                var result = parseInt(number).toString(2);
                while (result.length < 8) {
                    result = "0" + result;
                }
                return result;
            }

layui中自定义校验规则——校验ip、子网掩码、网关:

  /******************* 自定义校验 ************************/ 
            form.verify({
                addr: check,
                netmask: function (MaskStr) {
                    if (!validateMask(MaskStr)) {
                        return '子网掩码格式错误,范例:255.255.255.0'
                    }
                },
                gateway: function (gateway) {
                    //获取表单区域所有值
                    let basic = form.val("filter_basic_config");
                    let ret = checkIp(gateway, basic.netmask, basic.addr)
                    // console.log("ret == ", ret)
                    if (!ret) {
                        return '网关格式错误!'
                    }
                },
            });

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xw-何妨吟啸且徐行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值