
HTML5 pattern 属性可原生验证 MAC 地址,但需正确转义连字符、避免正则边界符,并通过 invalid 事件捕获失败反馈——否则浏览器将静默忽略校验失败,导致表单意外提交。
html5 `pattern` 属性可原生验证 mac 地址,但需正确转义连字符、避免正则边界符,并通过 `invalid` 事件捕获失败反馈——否则浏览器将静默忽略校验失败,导致表单意外提交。
在 HTML 表单中使用 pattern 属性实现 MAC 地址格式校验是一种轻量高效的前端验证方式,但实践中常因两个关键细节失效:正则表达式语法错误与浏览器验证事件机制误解。
首先,正则本身需修正:原始写法 [:-] 中的 - 在字符组 [] 内若未转义且不位于开头/结尾,会被解析为范围连接符(如 a-z),导致语法错误或匹配异常。正确写法应为 [:\-](转义连字符)或更稳妥地将 - 放在字符组末尾:[:\-] 或 [:-](仅当 - 是最后一个字符时无需转义)。同时,HTML5 的 pattern 属性自动隐含 ^ 和 $ 锚点,因此显式添加 ^ 和 $ 反而可能引发兼容性问题(部分浏览器会报错或忽略)。推荐精简正则为:
<input type="text" name="mac_address" pattern="([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}" title="请输入标准MAC地址,例如:00:1A:2B:3C:4D:5E 或 00-1A-2B-3C-4D-5E" required maxlength="17">
其次,验证失败时默认无用户提示——浏览器仅在调用 checkValidity() 或尝试提交时内部标记无效,但不会自动阻止提交或显示提示。若期望即时反馈(如弹窗、高亮),必须监听 每个输入元素 的 invalid 事件(而非
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











