Ip地址正则表达式

Ip地址正则表达式

1.在实际工作的过程中,经常会遇到各种类型的表单验证,这次我遇到的就是:表单input的内容必须是ip地址的格式。
2.正则表达式不一定要会写,但一定要会看,不然很可能你百度出来的正则表达式不一定是你想用的。
iPv4的ip地址都是(1-255).(0-255).(0-255).(0-255)的格式
ip地址格式:xxx.xxx.xxx.xxx(每个xxx表示一个0-255的数字)

下面给出相对应的正则表达式:

分段正则表达式解释
0-99[1-9]?[0-9]?表示前面[]中的内容可以取或不取
100-991[0-9]{2}100到199的百位相同,十位个位都可以取0-9,使用{2}表示
200-2492[0-4][0-9]--------
250-25525[0-5]--------

观看规律发现 xxx.重复了三次,因此用下面的表示(.比较特殊因此需要反斜线转译)

// A code block
(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}

完整的ip地址还缺少最后一个xxx
拼接上格式为

// A code block
(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])

上面的一个不漏就是正确的验证ip的正则表达式,简单的讲解一下

\d表示0~9的任何一个数字

{2}表示正好出现两次

[0-4]表示0~4的任何一个数字

| 的意思是或者

( )上面的括号不能少,是为了提取匹配的字符串,表达式中有几个()就表示有几个相应的匹配字符串

1\d{2}的意思就是100~199之间的任意一个数字

2[0-4]\d的意思是200~249之间的任意一个数字

25[0-5]的意思是250~255之间的任意一个数字

[1-9]\d的意思是10~99之间的任意一个数字

[1-9])的意思是1~9之间的任意一个数字

\.的意思是.点要转义(特殊字符类似,@都要加\转义)

说到这里应该已经很清楚的知道了上面的正则表达式的意思。

我这里的写法没有考虑两种情况,一是172.00.01.3这种,前面以零开头,或者多个零的这种情况,二是本网络地址.

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值