各种类型Ip正则表达式

IP地址正则表达式匹配方法

这篇文章主要介绍了 IP地址正则表达式匹配方法的相关资料,需要的朋友可以参考下

正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

正则表达式

^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$

匹配 127.0.0.1 | 255.255.255.0 | 192.168.0.1

不匹配 1200.5.4.3 | abc.def.ghi.jkl | 255.foo.bar.1

正则表达式

^((0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})\.){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})(?(\/)\/([0-9]|[1-2][0-9]|3[0-2])|)$

匹配 192.168.0.1 | 192.168.0.1/32 | 255.255.0.0/1

不匹配 010.0.0.0 | 192.168.0.1/33 | 256.0.1.55

 

正则表达式

^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$

匹配 97.67.44.20 | 199.154.37.214 | 127.0.0.1

不匹配 63.125.94.287 | 140.370.a.187 | 94.923.1
正则表达式
/^(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\/(\d{1}|[0-2]{1}\d{1}|3[0-2])$/

匹配 192.168.100.1/24 | 0.0.0.0/0

不匹配 192.168.100.1/33 | 0.0.0.0/90

正则表达式

\d+\.\d+\.\d+\.\d+

匹配 127.0.0.1 | 255.255.255.0 | 192.168.0.1

不匹配 @#.5.4.3 | abc.def.ghi.jkl | 255.foo.bar.1

正则表达式

^((\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5])\.(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5])\.(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5])\.(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5]))$

匹配 1.198.0.1 | 100.10.0.1 | 200.200.123.123

不匹配 ..12.23 | a.23.345 | 400.500.300.300

正则表达式

^(\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])$

匹配 0.0.0.0 | 255.255.255.02 | 192.168.0.136

不匹配 256.1.3.4 | 023.44.33.22 | 10.57.98.23.

 

正则表达式

 

^(http|https|ftp)\://(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])|([a-zA-Z0-9_\-\.])+\.(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|uk|me))((:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*)$

匹配 http://www.allkins.com | http://255.255.255.255 | http://allkins.com/page.asp?action=1

不匹配 http://test.testing

正则表达式

 

^(([0-2]*[0-9]+[0-9]+)\.([0-2]*[0-9]+[0-9]+)\.([0-2]*[0-9]+[0-9]+)\.([0-2]*[0-9]+[0-9]+))$

匹配 113.173.40.255 | 171.132.248.57 | 79.93.28.178

不匹配 189.57.135 | 14.190.193999 | A.N.D.233

正则表达式

 

\b(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b

匹配 217.6.9.89 | 0.0.0.0 | 255.255.255.255

不匹配 256.0.0.0 | 0978.3.3.3 | 65.4t.54.3

 

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../timebar/files/jquery.min.js"></script>
</head>
<body>

<input id="ip"><input id="button" type="button" value="测试" >
</body>
<script>
    $(function () {
        $("#button").click(getReg)
        function getReg() {
            let ip = $("#ip").val();
            console.log("ip:",ip)
            // var ip="172.16.2.2"
            var message ="";
            //末尾1个*位数 匹配  172.16.2.*
            var pattern1 = /^(\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])\.\*$/;
            //末尾两位  172.16.*.*
            var pattern2 = /^(\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])\.\*\.\*$/;
            //全ip  172.16.2.2
            var pattern3=/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;

            //子网掩码正则 172.162.2/255.255.255.0
            var pattern4 =/^((128|192)|2(24|4[08]|5[245]))(\.(0|(128|192)|2((24)|(4[08])|(5[245])))){3}$/
            if (!ip) message="扫描网段不能为空";
            else if (ip.match(pattern1) != null) {
                message="正确1";
            }
            else if (ip.match(pattern2) != null) {
                message="正确2";
            }
            else if (ip.split("/").length==2 && ip.split("/")[0].match(pattern3) ) {
                if(ip.split("/")[1]>=8 && ip.split("/")[1]<=32  ){
                    console.log("符合8-32")
                    message="正确3";
                }else if(ip.split("/")[1].match(pattern4)){
                    console.log("子网掩码正确")
                    message="正确4";
                }else{
                    message="扫描网段有误,参考172.16.2.2/8或172.16.2.2/255.255.255.0";
                }

            }
            else message="扫描网段有误,参考172.16.2.*";
            console.log(message)

        }
    })

</script>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值