这个javascript函数有什么问题?

时间:2010-07-27 10:51:27

标签: javascript regex validation email

我正在使用以下javascript正则表达式电子邮件验证功能,但它似乎无法正常工作......

function IsValidEmail(email) {
    var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    return filter.test(email);
}

function forgetpassword() {
    if (document.getElementById("ctl00_TxtEmailId").value == "") {
        return false;// this condition gets exected so no prob with my txtboxID
    }
    if (document.getElementById("ctl00_TxtEmailId").value != "") {
        return IsValidEmail(document.getElementById("ctl00_TxtEmailId").value);
    }
    return true;
}

我失败的输入是test,test@test and also test@test.com

伙计我的文本框位于facebox模式弹出窗口中....当我尝试使用某些文字alert(document.getElementById("ctl00_TxtEmailId").value jsadf时,警报显示为什么?为什么?

2 个答案:

答案 0 :(得分:1)

我会将正则表达式改为

/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/

我会将forgetpassword重写为

function forgetpassword() {
    return IsValidEmail(document.getElementById("ctl00_TxtEmailId").value);
}

修改:完成功能

function IsValidEmail(email) {
    var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/
    return filter.test(email);
}
Chrome / IE8中的

IsValidEmail('janus@aaa.bbb') -> true

答案 1 :(得分:0)

想试试吗?

/ ^ [A-ZA-Z] [\瓦特.-] [A-ZA-Z0-9] @ [A-ZA-Z0-9] [\瓦特.-] [A-ZA-Z0-9]。[A-ZA-Z] [A-ZA-Z。] * [A-ZA-Z] $ /