在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 &.)
甚至可以在正则表达式中放出&符号而不会弄乱它吗?在这种情况下验证器是正确的吗?
答案 0 :(得分:6)
例如,您可以使用十六进制值:\x26
见这里:http://regex101.com/r/bF4bZ3
换句话说,[....$%&'*....]
将成为[....$%\x26'*....]
。对其他人做同样的事。