Javascript中的电子邮件验证检查

email validation checking in Javascript

本文关键字:验证 检查 电子邮件 Javascript      更新时间:2023-09-26

我想验证输入的字符串是否为电子邮件格式。我有点困惑。我试图编写下面的代码,但失败了。请阿尤恩帮帮我。

Javascript Code:
<script>
            function emailValidation(id)
            {
        var emailPattern =  var emailPattern = /^'w+([-+.']'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*$/;
                if (emailPattern.test(id) === false)
                {
                    alert("not a valid email address.");
                 }            
                 document.getElementById(id).value = "";
            }
         </script>
HTML Code:
             <input type="text" id="empemail" onblur="emailValidation('empemail')" name="email" placeholder="eg: aaa@abc.ca" required="">

您还可以使用 HTML5 通过将类型更改为 email 来验证电子邮件输入字段:

<input type="email" name="email">

如果你不想使用HTML5并依赖javascript,你可以按照@springrolls建议使用这个线程。你的 JavaScript 代码中也有一个错误:

var emailPattern =  var emailPattern =  ...

而且您也没有正确传递输入字段中的值。这就是为什么你的函数总是返回 false。试试这个jsfiddle:

function emailValidation(id)
{
    var emailPattern = /^'w+([-+.']'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*$/;
    var email = document.getElementById(id).value
    if (emailPattern.test(email) === false)
    {
        alert("not a valid email address.");
    }            
}

另外,不要忘记检查电子邮件输入服务器端。如果你使用的是PHP,你可以使用这样的东西:

$email = $_POST["email"];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $error = "Invalid email format"; 
}

试试这个模式。

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

您可以使用 https://regex101.com/测试模式

您还可以通过在输入字段中添加 type="email" 来使用 HTML5 验证例:

<!DOCTYPE HTML>
<html>
<head>
<title>Test Email Submit</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
  <form action="/submitForm">
   Email:<br>
  <input type="email" name="email"><br>
  <input type="submit" value="Submit">
  </form>
</body>
</html>
function isValidEmail(email) {
   var filter = /^([a-zA-Z0-9_'.'-])+'@(([a-zA-Z0-9'-])+'.)+([a-zA-Z0-9]{2,4})+$/;
   if (!filter.test(email)) {
       return false;
    }
return true;
}

如果电子邮件有效,则返回 true,否则返回 false