电邮验证工具

时间:2011-12-23 00:10:08

标签: javascript

我的电子邮件验证码遇到了麻烦。我继续得到我的函数没有定义的错误。我已经为java代码创建了一个javascript文件,然后我在我的html中使用了onchange来触发该函数。

    <input type="text" id="email" name="email" onchange="check();" />

    function check() {
email = document.getElementById("email").value;
filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (filter.test(email.value)) 
    {
    document.getElementById("email").style.border = "3px solid green";  
    return true;
    }
else
    {
    document.getElementById("email").style.border = "3px solid red";
    return false;
    }
}

4 个答案:

答案 0 :(得分:3)

将您的javascript放入<script>标记。

同时重命名变量名称email,因为您的文本框已经使用它。

<input type="text" id="email" name="email" onchange="check();" />
<script type="text/javascript">
    function check() {
        var email_x = document.getElementById("email").value;
        filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (filter.test(email.value)) {
            document.getElementById("email").style.border = "3px solid green";
            return true;
        } else {
            document.getElementById("email").style.border = "3px solid red";
            return false;
        }
    }
</script>

答案 1 :(得分:1)

电子邮件验证并不总是像正则表达式那样简单。你看过了吗:

Validate email address in JavaScript?

更好的选择是使用Verimail.js。这是一个简单的脚本,可以为您处理。使用Verimail.js,您可以这样做:

var email = "cool@fabeook.cmo";
var verimail = new Comfirm.AlphaMail.Verimail();

verimail.verify(email, function(status, message, suggestion){
    if(status < 0){
        // Incorrect syntax!
    }else{
        // Syntax looks great!
    }
});

上面的示例将出现“语法错误!”一行因为TLD'cmo'无效。除此之外,它还会提示您可以返回给您的用户,在这种情况下,建议变量将包含'cool@facebook.com',因为'fabeook.cmo'看起来很像'facebook.com'。< / p>

希望这有帮助!

答案 2 :(得分:1)

以下是html输入字段和按钮字段

的代码
   <input input type="text" name="txtEmailId" id="txtEmailId" /> 
   <input type="submit" class="button" value="Suscribe" name="Suscribe" 
            onclick="javascript:ShowAlert()" />

现在将以下功能添加到页面标题

 <script type="text/javascript">
 function ShowAlert() {
  var email = document.getElementById('txtEmailId');
  var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email.value)) {
        alert('Please provide a valid email address');
        email.focus;
        return false;
    }
    else {
        alert("Thanks for your intrest in us, Now you 
        will be able to receive monthly updates from us.");
        document.getElementById('txtEmailId').value = "";
    }
 }
 </script> 

您可以在此处找到有关此Email Validation in JavaScript

的文章

答案 3 :(得分:0)

如果您对域名有所了解,可以使用此代码进行电子邮件验证,以防止匿名电子邮件域。

(^([a-zA-Z]{1,20}[-_.]{0,1}[a-zA-Z0-9]{1,20})(\@gmail\.com|\@yahoo\.com|\@hotmail\.com)$)

您也可以添加其他域名。