【发布时间】:2013-11-05 12:17:30
【问题描述】:
据说“使用 HTML5,我们不再需要 js 或服务器端代码来检查用户输入的是否是有效的电子邮件或 url 地址”
如何在用户输入后验证电子邮件?如果用户输入错误的电子邮件地址格式,如果没有 JS,如何显示消息。
<input type="email" pattern="[^ @]*@[^ @]*" placeholder="Enter your email">
<input type="submit" value="Submit">
【问题讨论】:
-
您始终需要在服务器端进行验证。聪明的客户端可以绕过任何客户端安全措施。
-
This answer 在尝试设置 HTML5 表单验证时可能会有所帮助。当然,您可能仍然需要服务器端验证。
-
在任何情况下都不应使用正则表达式电子邮件验证。正则表达式检查有太多缺陷。 “验证”电子邮件地址的最佳方法是简单地让他们键入两次并运行正则表达式检查,向用户发出警告,如果它与模式不匹配,它看起来不像是有效的电子邮件地址,并且要求用户仔细检查。这样,如果它实际上是有效的,但正则表达式失败(就像它经常发生的那样),用户可以承认他们知道它是有效的并继续。太多网站使用正则表达式验证,这让许多用户感到沮丧。
-
要求用户输入两次相同的电子邮件地址是没有用的。如果您不知道他们的电子邮件地址,要求输入两次并不会提高几率。如果他们确实知道他们的电子邮件地址,要求输入两次只是糟糕的 UI。