javascript - Chrome 模式输入验证上的正则表达式

标签 javascript regex html validation

我有一个符合 RFC 5322 的电子邮件正则表达式模式来验证我的输入。 这适用于所有浏览器,但 Chrome 在控制台上显示以下错误:

Pattern attribute value ^[-a-z0-9~!$%^&*_=+}
{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_]
[-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz
|com|coop|edu|gov|info|int|mil|museum|name
|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]
{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))
(:[0-9]{1,5})?$
is not a valid regular expression:

Uncaught SyntaxError: Invalid regular expression:
/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^
&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z
0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov
|info|int|mil|museum|name|net|org|pro|travel
|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.
[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/

Invalid escape

我只是找不到哪个 block 有这个无效的转义。

最佳答案

最新的 Chrome(至少从 114 开始)实际上使用 /v flag现在。这要求您转义字符类中的所有特殊字符。

例如,要匹配 {},您应该编写 [\{\}] 而不是 [{} ]

关于javascript - Chrome 模式输入验证上的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41591970/

相关文章:

css - 为什么当我悬停时背景没有改变颜色?

javascript - ng-cloak 指令被过早删除

javascript - 如何使用 Vue.js 向基于 Prop 的元素添加多个类?

javascript - node.js Array.length 问题

c# - RegEx 只允许有效的 Enum 成员名称

css - 流宽 HTML5 视频不能在 iPad 或 iPhone 上运行?

html - vuejs 中的 v-for 动态图像网格逻辑

javascript - 使用 jquery 隐藏动态创建的元素

ruby-on-rails - 瘦服务器进程以 100% CPU 挂起,似乎是一个正则表达式循环。我在哪里可以获得更多调试信息?

regex - 如何使 mod_rewrite 从子域重定向到查询字符串?