Javascript 基于Chrome模式输入验证的正则表达式

Javascript 基于Chrome模式输入验证的正则表达式,javascript,regex,html,validation,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|na

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

我就是找不到哪个区块有这个无效转义。

因为Chrome
模式
属性自动添加了
u
修饰符,所以对正则表达式语法应用了更严格的规则。基本上,您无法逃避任意符号。如果符号不是特殊的正则表达式元字符,则无法对其进行转义,否则将出现此错误


因此,在你的例子中,单撇号不能被省略。删除前面的转义反斜杠,正则表达式将再次在每个浏览器中工作。

由于Chrome
pattern
属性自动添加
u
修饰符,因此对正则表达式语法应用了更严格的规则。基本上,您无法逃避任意符号。如果符号不是特殊的正则表达式元字符,则无法对其进行转义,否则将出现此错误


因此,在你的例子中,单撇号不能被省略。删除前面的转义反斜杠,正则表达式将再次在每个浏览器中工作。

无需转义单引号。请共享您的code@WiktorStribiżew,谢谢,问题解决了!无需逃避单一报价。请分享您的code@WiktorStribiżew,谢谢,问题解决了!完美的技术解释!谢谢@Wiktor,这真是个好办法!完美的技术解释!谢谢@Wiktor,这真是个好办法!