首页 web前端 js教程 怎样用正则来验证IPV4的地址功能

怎样用正则来验证IPV4的地址功能

Mar 30, 2018 am 09:22 AM
ipv4 地址 验证

这次给大家带来怎样用正则来验证IPV4的地址功能,用正则来验证IPV4地址功能的注意事项有哪些,下面就是实战案例,一起来看一下。

本文实例讲述了正则表达式验证IPV4地址功能。分享给大家供大家参考,具体如下:

IPV4地址由4个组数字组成,每组数字之间以.分隔,每组数字的取值范围是0-255。

IPV4必须满足以下四条规则:

1、任何一个1位或2位数字,即0-99;
2、任何一个以1开头的3位数字,即100-199;
3、任何一个以2开头、第2位数字是0-4之间的3位数字,即200-249;
4、任何一个以25开头,第3位数字在0-5之间的3位数字,即250-255。

这样把规则全部罗列出来之后,构造一个正则表达式的思路就清晰了。

首先满足第一条规则的正则是:\d{1,2}
首先满足第二条规则的正则是:1\d{2}
首先满足第三条规则的正则是:2[0-4]\d
首先满足第四条规则的正则是:25[0-5]

把它们组合起来,就得到一个匹配0-255数字的正则表达式了:

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

IPV4由四组这样的数字组成,中间由.隔开,或者说由三组数字和字符.和一组数字组成,所以匹配IPV4的正则表达式如下:

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

Java测试代码如下:

public static void matchAndPrint(String regex, String sourceText){
  Pattern pattern = Pattern.compile(regex);
  Matcher matcher = pattern.matcher(sourceText);
  while(matcher.find()){
    System.out.println(matcher.group());
  }
}
public static void main(String[] args) {
  String regex = "^(((\\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]))$";
  matchAndPrint(regex, "23.135.2.255");
  matchAndPrint(regex, "255.255.0.256");
  matchAndPrint(regex, "0.0.0.0");
}
登录后复制

输出结果如下:

23.135.2.255
0.0.0.0

这个正则有一个缺陷,就是如果不使用边界匹配的话,像第二个测试IP 255.255.0.256也会被匹配到,匹配到的结果是255.255.0.25。可以添加限制条件,前后要么是边界,要么是非数字,并且使用前后查找(lookaround),前后查找将在后面介绍。即:

(?<=(\\b|\\D))(((\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]))(?=(\\b|\\D))

String regex = "(?<=(\\b|\\D))(((\\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]))(?=(\\b|\\D))";

这样即可解决这个问题。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

用php与js实现正则匹配数字和字母组合的密码

在JQ中正则验证不能含有中文的方法

以上是怎样用正则来验证IPV4的地址功能的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

win10电脑自动配置ipv4地址169怎么办_win10电脑关闭自动配置ipv4地址的方法 win10电脑自动配置ipv4地址169怎么办_win10电脑关闭自动配置ipv4地址的方法 Mar 27, 2024 pm 11:50 PM

1、打开小娜搜索,输入cmd,然后选择命令提示符右击以管理员身份运行。2、输入:netshwinsockresetcatalog,按回车。3、然后再输入:netshintipresetreset.log,按回车。4、重启电脑,之后在IP设置里面输入你想要输入的IP、DNS等信息,确定。

如何在PDF中验证签名 如何在PDF中验证签名 Feb 18, 2024 pm 05:33 PM

我们通常接收到政府或其他机构发送的PDF文件,有些文件带有数字签名。验证签名后,我们会看到SignatureValid消息和一个绿色勾号。如果签名未验证,会显示有效性未知。验证签名很重要,下面看看如何在PDF中进行验证。如何在PDF中验证签名验证PDF格式的签名使其更可信,文档更容易被接受。您可以通过以下方式验证PDF文档中的签名。在AdobeReader中打开PDF右键单击签名,然后选择显示签名属性单击显示签名者证书按钮从“信任”选项卡将签名添加到“受信任的证书”列表中单击验证签名以完成验证让

微信好友辅助验证进行解封的详细方法 微信好友辅助验证进行解封的详细方法 Mar 25, 2024 pm 01:26 PM

1、打开微信进入后,点击搜索图标,输入微信团队,点击下方的服务进入。2、进入后,点击左下方的自助工具的选项。3、点击后,在上方的选项内,点击解封/申诉辅助验证的选项。

Apple售后(apple售后点地址) Apple售后(apple售后点地址) Jan 11, 2024 pm 10:30 PM

apple官方售后电话苹果24小时服务中心电话:400-666-8800。苹果手机售后电话人工服务电话是:400-666-8800。-627-2273。苹果客服人工服务电话是售后支持400-627-2273;在线商店400-666-8800;苹果官方电话唯一号码就是400-666-8800。苹果客服人工服务电话是400-666-8800,您可以拨打此电话咨询苹果产品的硬件、软件和第三方配件产品问题。需要注意的是,苹果的人工客服并非24小时提供服务,他们的服务时间为早上9点至晚上9点(周日为9点至

美团地址在哪里改?美团地址修改教程! 美团地址在哪里改?美团地址修改教程! Mar 15, 2024 pm 04:07 PM

一、美团地址在哪里改?美团地址修改教程!方法(一)1.进入美团我的页面,点击设置。2.选择个人信息。3.再点击收货地址。4.最后选择要修改的地址,点击地址右侧的笔图标,修改即可。方法(二)1.在美团app首页,单击外卖,进入后点击更多功能。2.在更多界面,点击管理地址。3.在我的收货地址界面,选择编辑。4.根据需求一一进行修改,最后点击保存地址即可。

如何使用正则表达式验证IFSC代码? 如何使用正则表达式验证IFSC代码? Aug 26, 2023 pm 10:17 PM

印度金融系统代码是缩写。参与电子资金转移系统的印度银行分支机构由一个特殊的11位字符代码进行标识。印度储备银行在互联网交易中使用此代码在银行之间转移资金。IFSC代码分为两个部分。银行由前四个字符进行标识,而分支机构由最后六个字符进行标识。NEFT(全国电子资金转移)、RTGS(实时毛额结算)和IMPS(即时支付服务)是一些需要IFSC代码的电子交易。Method使用正则表达式验证IFSC代码的一些常见方法有:检查长度是否正确。检查前四个字符。Checkthefifthcharacter.Che

golang中如何验证输入是否为全角字符 golang中如何验证输入是否为全角字符 Jun 25, 2023 pm 02:03 PM

在golang中,验证输入是否为全角字符需要用到Unicode编码和rune类型。Unicode编码是一种将字符集中的每个字符分配一个唯一的数字码位的字符编码标准,其中包含了全角字符和半角字符。而rune类型是golang中用于表示Unicode字符的类型。第一步,需要将输入转换为rune类型的切片。这可以通过使用golang的[]rune类型进行转换,例如

golang中如何验证输入是否为大写字母 golang中如何验证输入是否为大写字母 Jun 24, 2023 am 09:06 AM

Golang是一门高性能、现代化的编程语言,在日常开发中经常涉及到字符串的处理。其中,验证输入是否为大写字母是一个常见的需求。本文将介绍在Golang中如何验证输入是否为大写字母。方法一:使用unicode包Golang中的unicode包提供了一系列函数来判断字符的编码类型。对于大写字母,其对应的编码范围为65-90(十进制),因此我们可以使用unicod

See all articles