验证电子邮件地址失败

validating email address fails

本文关键字:失败 电子邮件地址 验证      更新时间:2023-09-26

我在jquery和电子邮件验证方面遇到了一个小问题。我使用电子邮件类型的输入框来检索用户输入的电子邮件地址(html5),但它在IE上不起作用,我现在想添加一个简单的jquery函数,在提交表单之前验证输入电子邮件地址。以下是我所做的。

    function IsValidEmail(email)
{
    var eReg=/^(['w-'.]+@(['w-]+'.)+['w-]{2,4})?$/;
    return eReg.test(email);
}
$(document).ready(function()
    {
    var em=$('#email').val();
    if(!IsValidEmail(em))
    {
        $('#e-valid').css('color','red');
            $('#e-valid').html("Email is invalid.Please enter a valid address");
    }
    }
);

这是的表格

<form method="POST" action="doit" id="stuff">
        <table>
        <tr>
            <td width="175px"><label for="email">Your email address</label></td>                
            <td><input type="email" name="email" id="email" size="35"/><span id="e-valid">&nbsp;</span></td>
        </tr>
        <tr>
            <td></td><td><input type="submit" value="Send" /></td>
        </tr>
        </table>
    </form>

但是,当我在输入框中输入无效的电子邮件地址时,没有显示任何内容。我感谢你的帮助。非常感谢。

您在页面加载时验证电子邮件,但不是在用户提交信息时验证。您应该在submit事件上进行验证

$("#aspnetForm").submit(function(){
    var em=$('#email').val();
    if(!IsValidEmail(em))
    {
        $('#e-valid').css('color','red');
        $('#e-valid').html("Email is invalid.Please enter a valid address");
        return false;
    }
    return true;
}

首先,您使用的正则表达式看起来很奇怪。大多数使用占位符的反斜杠在字符集中都失去了意义。

有关用于验证电子邮件地址的正则表达式的信息,请参阅此和此。

修复正则表达式后,您应该按照Claudio的建议,在表单提交时进行验证。