Javascript/jQuery像浏览器一样验证电子邮件

Javascript/jQuery validate email like the browser does

本文关键字:一样 验证 电子邮件 jQuery 浏览器 Javascript      更新时间:2024-03-28

我知道在制作自定义表单submit:时,可能会对表单使用默认的浏览器验证

event.target.checkValidity();

这很管用。

然而,现在,我想验证一封尚未在表单中的电子邮件,并检查它是否是电子邮件。我不喜欢使用regex,而是使用内置的浏览器验证,就像使用event.target.checkValidity()一样。

有什么线索可以告诉我如何调用checkValidity()使用的函数来检查电子邮件是否正确吗?

您可以创建一个动态元素并使用其checkValidity方法吗?

function isEmailValid(emailAddress) {
    var email = document.createElement("input");
    email.type = "email";
    email.value = emailAddress;
    return email.checkValidity();
}
console.log(isEmailValid("test@email.com"));

这是一个演示。

或者,如果您想测试现有的输入元素:

function isInputValid(input) {
    return input && input.checkValidity && input.checkValidity();
}
console.log(isInputValid(document.getElementById("userEmail")));

值得注意的是,对于空的电子邮件地址,checkValidity()返回true。所以,如果你需要它是非空的,你需要自己检查。