龙空技术网

js正则校验ip、子网掩码、网关等地址的合法性

热爱技术的小张 173

前言:

目前各位老铁们对“js正则ip地址”大体比较珍视,同学们都需要知道一些“js正则ip地址”的相关知识。那么小编也在网摘上搜集了一些对于“js正则ip地址””的相关文章,希望我们能喜欢,朋友们快快来了解一下吧!

/*校验ip合法性*/    function checkIp(ip) {        var rep = /^(\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])$/;        if (!rep.test(ip)) {            return false;        } else {            return true;        }    }
    // 校验子网掩码合法性    function isValidMask(mask) {        var reg = /^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/;        return reg.test(mask);    }
/*校验ip和子网掩码组合 合法性*/    function checkMask(ip1, mask) {        // obj=mask;        //符合规范返回值为0,否则返回2        var exp = /^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/;        var A_IP_REGEX_ALL = /^(\d|[1-9]\d|1[0-1]\d|12[0-7])(\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){3}$/;        var B_IP_REGEX_ALL = /^(12[8-9]|1[3-8]\d|19[0-1])(\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){3}$/;        var C_IP_REGEX_ALL = /^(19[2-9]|2[0-1]\d|22[0-3])((\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))){3}$/;        if (!exp.test(mask)) {            return 2;        } else {            var ip1Array = ip1.split(".");            var yuIp1 = [];            var mask_arr = mask.split(".");            var checkMask = true;            var checkIpD = 0;            if (A_IP_REGEX_ALL.test(ip1)) {                var static_Mask = [255, 0, 0, 0];                yuIp1.push(parseInt(static_Mask[0]) & parseInt(mask_arr[0]));                yuIp1.push(parseInt(static_Mask[1]) & parseInt(mask_arr[1]));                yuIp1.push(parseInt(static_Mask[2]) & parseInt(mask_arr[2]));                yuIp1.push(parseInt(static_Mask[3]) & parseInt(mask_arr[3]));                $.each(yuIp1, function (i, p) {                    if (p !== static_Mask[i]) {                        checkMask = false;                        return false;                    }                });                if (!checkMask) {                    return 2;                } else {                    return 0;                }            } else if (B_IP_REGEX_ALL.test(ip1)) {                var static_Mask = [255, 255, 0, 0];                yuIp1.push(parseInt(static_Mask[0]) & parseInt(mask_arr[0]));                yuIp1.push(parseInt(static_Mask[1]) & parseInt(mask_arr[1]));                yuIp1.push(parseInt(static_Mask[2]) & parseInt(mask_arr[2]));                yuIp1.push(parseInt(static_Mask[3]) & parseInt(mask_arr[3]));                $.each(yuIp1, function (i, p) {                    if (p !== static_Mask[i]) {                        checkMask = false;                        return false;                    }                });                if (!checkMask) {                    return 2;                } else {                    return 0;                }            } else if (C_IP_REGEX_ALL.test(ip1)) {                var static_Mask = [255, 255, 255, 0];                yuIp1.push(parseInt(static_Mask[0]) & parseInt(mask_arr[0]));                yuIp1.push(parseInt(static_Mask[1]) & parseInt(mask_arr[1]));                yuIp1.push(parseInt(static_Mask[2]) & parseInt(mask_arr[2]));                yuIp1.push(parseInt(static_Mask[3]) & parseInt(mask_arr[3]));                $.each(yuIp1, function (i, p) {                    if (p !== static_Mask[i]) {                        checkMask = false;                        return false;                    }                });                if (!checkMask) {                    return 2;                } else {                    return 0;                }            }        }    }
/*校验ip、子网掩码、网关的合法性*/    function checkNet(static_ip, static_mask, static_gw) {        if (static_ip === static_mask || static_mask === static_gw || static_mask === static_gw) {            return "IP地址与子网掩码、网关地址不能相同"; //3个地址不能相同        }        var static_ip_arr = [];        var static_mask_arr = [];        var static_gw_arr = [];        static_ip_arr = static_ip.split(".");        static_mask_arr = static_mask.split(".");        static_gw_arr = static_gw.split(".");        var res0 = parseInt(static_ip_arr[0]) & parseInt(static_mask_arr[0]);        var res1 = parseInt(static_ip_arr[1]) & parseInt(static_mask_arr[1]);        var res2 = parseInt(static_ip_arr[2]) & parseInt(static_mask_arr[2]);        var res3 = parseInt(static_ip_arr[3]) & parseInt(static_mask_arr[3]);        var res0_gw = parseInt(static_gw_arr[0]) & parseInt(static_mask_arr[0]);        var res1_gw = parseInt(static_gw_arr[1]) & parseInt(static_mask_arr[1]);        var res2_gw = parseInt(static_gw_arr[2]) & parseInt(static_mask_arr[2]);        var res3_gw = parseInt(static_gw_arr[3]) & parseInt(static_mask_arr[3]);        if (res0 === res0_gw && res1 === res1_gw && res2 === res2_gw && res3 === res3_gw) {            return "";        } else {            return 'IP地址与子网掩码、网关地址不匹配';        }    }

标签: #js正则ip地址