HTML5表单验证电子邮件

3
我遇到了这个问题,之前没有注意到。
<label> Email Address </label>
<input type="email" id="emailAddress" required placeholder='Email Address' />
<button type="submit" class="button primary small">Submit</button>

在我的JS文件中,我使用checkValidity()来检查其有效性。

checkValidEmail: function(event){
  var emailAddress = $('#emailAddress');
  if(emailAddress[0].checkValidity()){
    console.log('Valid');
  } else{
    console.log('Not Valid');
  }
}


"keyup #emailAddress": "checkValidEmail" // KeyUp works as expected

Output:
  'a@b' // Valid

我不理解这种行为。据我所知,@.com是输入电子邮件的正则表达式。

请注意:我在多个带有表单的网站上尝试过,并显示相同的输入。在上述情况下,我是在Chrome浏览器上执行此操作。

感谢您抽出时间回复!


1
并非所有浏览器都支持电子邮件类型。 @.com 不是正则表达式。如果是的话,很多电子邮件地址将无法通过验证。 - RobG
是的,这是一个类似的问题。但该问题中的答案未能满足Maksym所提供的有效电子邮件地址格式。如果你们仍想将其标记为重复问题,我很乐意这样做! - suprita shankar
2个回答

0

在HTML5中,您可以像这样验证电子邮件

<form>
    <input type="email" placeholder="Enter your email">
    <input type="submit" value="Submit">
</form>

1
它与 OP 有什么不同? - user4227915

0
如果您想要使用正则表达式验证,请继续阅读。

http://www.regular-expressions.info/email.html

请注意,以下是100%有效且可用的电子邮件地址 :-) 经常用于测试错误实施的电子邮件验证

xn--80a1acny@xn--80auew.xn--j1amh

另一个选项是检查电子邮件地址域名是否有效。为了做到这一点,您可以查询MX记录的DNS服务器(此记录指向负责接收传入邮件的SMTP服务器)。您需要服务器端代码来完成此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接