【问题标题】:HTML Email Validation after the @@ 之后的 HTML 电子邮件验证
【发布时间】:2015-05-30 22:54:46
【问题描述】:

是否可以要求一个“。”在“@”之后?

required 验证仅强制电子邮件在“@”之后包含一些内容,但我想要求一个“。”让用户输入“.com/.org/etc”

http://jsfiddle.net/X6Uuc/333/

【问题讨论】:

  • 查看第二个答案:stackoverflow.com/questions/5601647/…
  • 我可以使用 type="email",但它允许在没有“.com/.org/etc”的情况下提交表单
  • 是的。查看 parsley.js,它是一个功能更全面的输入验证库
  • FQDN 中不必有一个点。有人直接从 TLD 运行电子邮件地址是不寻常的,但并非闻所未闻(而且随着最近大量新 TLD 的涌入,这种情况更有可能发生)。

标签: html forms validation


【解决方案1】:

如果您依赖input[type=email],您也可以使用pattern attr:

我从W3C spec for the email input 获得了以下示例中的RegEx。本机模式在最后部分使用*,则不需要,我只将其更改为+

<form>
  <input type="email" pattern="^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$" required />
  <button>Submit</button>
  </form>

【讨论】:

  • 这有更多的验证,但当我输入完整的电子邮件地址时无效:i.imgur.com/7Ir3Wn7.png
  • 是的,它有效,我需要同时拥有oninput="setCustomValidity('')" oninvalid="setCustomValidity('Please enter your full email address.')"
猜你喜欢
  • 2016-11-23
  • 1970-01-01
  • 2022-08-05
  • 2014-05-29
  • 1970-01-01
  • 2020-05-29
  • 2019-07-02
  • 1970-01-01
相关资源
最近更新 更多