javascript - 使用正则表达式验证电子邮件

标签 javascript html regex

<分区>

我想用正则表达式验证电子邮件。下面的代码显示了我使用的正则表达式。然而,该表单不接受简单的anystring@anystring.anystring。(anystring 是字母)。

我是不是漏掉了什么?

window.onload = function () {
    document.getElementById("form").onsubmit = validate;
}

function validate() {
    var email = document.getElementsByTagName("input")[6].value;
    var regex = /^\w@\w+\.\w$/;
    if (!regex.test(email)) {
        alert("enter a valid email");
        return false;
    } else return true;
}

最佳答案

除非您确定输入的电子邮件地址将匹配该格式,否则您应该考虑使用匹配更多的正则表达式。

"()<>[]:,;@\"!#$%&'*+-/=?^_`{}| ~.a"@üñîçøðé​​.com 在技术上(!)是一个正确的电子邮件地址。虽然匹配所有这些疯狂的东西可能不是一个好主意,但这可能是你正在寻找的并且将匹配绝大多数电子邮件地址今天:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

同样,如果您确定您的电子邮件地址将采用您最初想要的格式,请使用 Valinho 的回答。

有关使用正则表达式匹配电子邮件地址的有趣读物(包含上述正则表达式):http://www.regular-expressions.info/email.html

官方标准(没有 unicode 疯狂):https://www.rfc-editor.org/rfc/rfc5322

关于javascript - 使用正则表达式验证电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630667/

相关文章:

regex - 删除R中破折号周围的空格

regex - 从文件中提取多行

javascript - 仅用第二个字符替换两个字符的任意组合

javascript - 使用 XML 更新时钟选择器输入字段

html - 没有 XAMPP 的 Index.html

javascript - AngularJS - 在方法内丢失 Controller 范围

html - 如何使用 Bootstrap 用一张图像覆盖整个屏幕背景

javascript - [Element].onXXX 可以用来制造不平凡的黑客问题吗?

javascript - 简单的重构会消除 react 性

javascript - 如何使用地理位置 API 获取城市名称和州名称?