我有一个符合 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/