HTML表单怎么用正则表达式校验子网掩码

千墨同学_5393

千墨同学_5393

2026-10-16

467人浏览

原创

html表单中pattern属性可校验子网掩码格式,如^(255.){0,3}(255|254|252|248|240|224|192|128|0)(.(0|255|254|252|248|240|224|192|128|0)){0,3}$,但无法验证二进制连续性,必须依赖后端位运算校验。

html表单怎么用正则表达式校验子网掩码

HTML表单里直接用 pattern 属性校验子网掩码

HTML5 的 <input> 支持 pattern 属性,它接受一个正则表达式(不带 /g 标志),浏览器会在提交前自动校验。但注意:这个正则只做格式初筛,**无法判断“255.255.254.0”是否合法(它不是连续1+连续0)**,只能拦住明显错的如 256.0.0.0 或 255.0.255.0。

推荐用这个更严谨的 pattern:

^(255\.){0,3}(255|254|252|248|240|224|192|128|0)(\.(0|255|254|252|248|240|224|192|128|0)){0,3}$

它能覆盖所有标准子网掩码十进制值(含 0.0.0.0 和 255.255.255.255),但依然不检查二进制连续性 —— 这是浏览器原生 pattern 的硬限制。

为什么不能只用通用 IP 正则校验子网掩码

常见误区是复用 IPv4 格式正则,比如:

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

这个会放行 255.255.255.1、255.255.128.128 等非法掩码,因为它们虽是合法 IPv4 地址,但二进制中 1 和 0 交替出现,不符合子网掩码定义。

anything-to-html
anything-to-html

将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。

下载
  • 255.255.255.1 → 11111111.11111111.11111111.00000001:末尾 1 后跟 0,再跟 1 → 连续性破坏
  • 255.255.128.128 → 第三段 10000000 后接第四段 10000000,中间无连续 0 区域

所以必须限定每段只取 CIDR 允许的值:0、128、192、224、240、248、252、254、255。

前端校验后仍需后端二次验证

pattern 只在用户提交时触发,且可被绕过(禁用 JS、手动改 DOM、curl 提交)。真正可靠的校验必须在服务端完成,例如 Java 中:

  • 先用正则快速过滤格式错误
  • 再将四段转为整数,逐段计算 num & (num + 1) —— 若结果非 0,说明该段二进制含孤立 1,即不满足“全 1 前缀 + 全 0 后缀”
  • 最后检查整体 32 位中 1 的总数是否为 0/8/16/24/32(对应 /0 到 /32)

典型错误写法:Integer.bitCount(num) 单独算每段 1 的个数 —— 这会把 128(10000000)和 192(11000000)都判为合法,但没保证段间连续性;必须拼成完整 32 位再校验。

实际部署时容易漏掉的边界情况

真实网络配置中会遇到这些边缘输入,pattern 很难覆盖,必须靠后端逻辑兜底:

  • 0.0.0.0:合法(/0),但有些旧正则会因开头 0. 被误判
  • 255.255.255.255:非法(无主机位),但格式上符合 pattern,需单独排除
  • 全零段后的非零段,如 255.255.0.128:第三段为 0,第四段非 0 → 二进制中断,必须拒绝
  • 多余空格或换行:HTML 表单默认不 trim," 255.255.255.0 " 会被 pattern 拒绝,应先 .trim()

最终建议:前端 pattern 仅作友好提示,核心逻辑永远落在服务端;别试图用一个正则解决所有问题 —— 子网掩码的本质是位运算约束,不是字符串模式匹配。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

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

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

6155

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3452

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3130

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

3159

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4899

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

3081

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

2889

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2568

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2628

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 224人学习