正则详解IP地址

本文讲解的是IP4的匹配方式,IP6同理

//首先写一个IP
var str = '255.199.99.0'

说白了,ip地址分四块,每一块范围就是0-255,但正则不懂数学,我们只能按照每一位进行判断

首先罗列所有的可能出现的条件

A.所有的两位数  /\d{1,2}/

B.第一位为1的所有三位数 /1\d{2}/

C.以2开头,第二位为0-4的所有三位数  /2[0-4]\d/

D.以25开头第三位范围为0-5  /25[0-5]/

接下来先拼凑出0-255的验证

var IP = /(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])/

然后每一块后面有一个点于是乎前面3块都加点,后面再copy一份没有点的

var IP = /((((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])))/

看似完美了吧,那你就太天真啦,我们发现当匹配256的时候仍然为TRUE,是因为我们没有做边界限制,

于是进一步改造,成为了下面的最终样子

var IP = /^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.)(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){2}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/

写正则主要就是要把所有的边界条件都要找到,然后一步一步的书写,希望对大家有帮助, 谢谢阅读

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值