我想用正则表达式验证电子邮件。下面的代码显示了我使用的正则表达式。然而,该表单不接受简单的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