关于C#:电子邮件格式的javascript验证接受错误的电子邮件格式@ abcd.com.gmail

javascript validation for email format accepting incorrect email format @abcd.com.gmail,

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Validate email address in Javascript?

我必须对电子邮件格式进行验证,我使用下面的代码来限制特殊字符。

1
onkeypress="return AlphaNumericBox(event,this,'@._);"

但现在的问题是,我没有对确切格式进行任何适当的验证,例如,它也接受像" @abcd.com.gmail,.."这样的文本。是否对此进行了任何javascript验证?有什么想法吗?

事先谢谢。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function CheckEmail(address){
    address=address.replace(/(^\s*)|(\s*$)/g,"");
    var reg=/([\w._-])+@([\w_-])+(\.([\w_-])+){1,2}/;
    var matcharr=reg.exec(address);
    if(matcharr!=null){
        if(matcharr[0].length==address.length){
            return true;
        }
        return false;
    }
    return false;
}

eg:
var sVal=" [email protected]";
var sVal2=" [email protected]";
console.log(CheckEmail("[email protected]"));    //outpus true
console.log(CheckEmail("@server.com"));   //outpus false

我建议您使用这个函数。我已经测试过很多次了。

1
2
3
4
function validateEmail (emailAddress) {
        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        return pattern.test(emailAddress);
}

现在,您可以轻松验证任何电子邮件地址:

1
2
var isValid = validateEmail('[email protected]'); // returns true;
isValid = validateEmail('@server.com'); // returns false;