Javascript中的电子邮件验证检查

时间:2016-04-27 08:45:11

标签: javascript html

如果输入的字符串是否为电子邮件格式,我想进行修改。我有点困惑。我试着写下面的代码,但失败了。你能不能帮助我。

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="">

4 个答案:

答案 0 :(得分:1)

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

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

如果您不想使用HTML5并依赖javascript,可以使用this thread作为@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"; 
}

答案 1 :(得分:0)

尝试这种模式。

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/

测试模式

答案 2 :(得分:0)

您还可以通过在输入字段中添加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>

答案 3 :(得分:0)

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