检查是否输入了正确的电子邮件

Check if correct e-mail was entered

本文关键字:电子邮件 是否 输入 检查      更新时间:2023-09-26

我有一个字段供用户在其中写入他们的电子邮件地址。这是可选的,所以我需要首先检查字段中是否输入了内容,如果没有输入,则不执行任何操作,但如果输入了内容,则检查是否为电子邮件。

现在我在这一点

var email = $("input#sc_email").val();  
if (email == "") {                
    // If e-mail field is empty do nothing
} else {                          
     // If something was entered
    // [CODE HERE] Check if valid e-mail was entered, if not show error message
    $("label#email_error").show(); //error message
    $("input#sc_email").focus();   //focus on email field
    return false;  
} 

我甚至不确定那是不是对的,但我认为是对的。现在我需要帮助代码中的空白,我标记为[CODE HERE]。谁能提出一个解决方案呢?

你可以使用jQuery validate插件,但是如果你只想在一个字段中检查电子邮件地址的有效性,那就有点过分了。

相反,如果输入了值,下面函数中的正则表达式将确保电子邮件地址的格式是正确的。

var email = $("input#sc_email").val();  
if (email !== "") {  // If something was entered
    if (!isValidEmailAddress(email)) {
        $("label#email_error").show(); //error message
        $("input#sc_email").focus();   //focus on email field
        return false;  
    }
} 
function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("['w-+'s]+")|(['w-+]+(?:'.['w-+]+)*)|("['w-+'s]+")(['w-+]+(?:'.['w-+]+)*))(@((?:['w-+]+'.)*'w['w-+]{0,66})'.([a-z]{2,6}(?:'.[a-z]{2})?)$)|(@'[?((25[0-5]'.|2[0-4]['d]'.|1['d]{2}'.|['d]{1,2}'.))((25[0-5]|2[0-4]['d]|1['d]{2}|['d]{1,2})'.){2}(25[0-5]|2[0-4]['d]|1['d]{2}|['d]{1,2})']?$)/i);
    return pattern.test(emailAddress);
};

您可以使用正则表达式来验证JavaScript中的电子邮件地址。

function validateEmail(email) { 
    var re = /^(([^<>()[']''.,;:'s@'"]+('.[^<>()[']''.,;:'s@'"]+)*)|('
".+'"))@(('[[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'])|(([a-zA
-Z'-0-9]+'.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}
然而,

这将只验证它是一个有效的电子邮件地址格式字符串。flibble@flobble.com将是有效的,即使没有人真正拥有该电子邮件地址。

看一下这个问题

我建议在客户端和服务器端进行验证,您可以简单地使用以下代码:

alert(/'S+@'S+'.'S+/.test('asdasd@asdasd@asdd.com'));
alert(/'S+@'S+'.'S+/.test('asdasd234@asdd.com'));

但重要的是,使用服务器端验证和方法,如发送点击链接邮件,验证您的客户端电子邮件地址或邮寄随机数等