4

在 HTML5 webapp 中提交表单之前,我使用以下电子邮件验证:

<input id="mail" name="mail" type="email" value="" required  placeholder="Email" 
pattern="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"> 

但是,正则表达式中的 & 符号似乎使 HTML 无效。检查http://validator.w3.org/我收到以下错误消息:

& did not start a character reference. 
(& probably should have been escaped as &amp;.)

是否有可能在不弄乱正则表达式的情况下逃脱&符号?在这种情况下验证者是否正确?

4

1 回答 1

6

例如,您可以使用十六进制值:\x26

见这里:http ://regex101.com/r/bF4bZ3

换句话说,[....$%&'*....]会变成[....$%\x26'*....]。对其余部分做同样的事情。

于 2012-10-21T10:05:13.060 回答