Javascript电子邮件验证正则表达式包含

时间:2012-09-02 12:09:28

标签: javascript regex syntax-error

我从this post获得了javascript电子邮件验证码。根据所有答案,RFC2822正则表达式如下:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

我试图在js中包含它,但它给出了语法错误。

var email = this.value;
if(email.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/) )
{
    //matched...
} else {
    //not matched..
}

我正在使用eclipse,一旦输入此代码就会出错。以下是长列表中的一些错误

Multiple markers at this line
- Syntax error on tokens, ArrayLiteralHeader expected instead
- Syntax error on token "?", invalid Expression
- Syntax error on token "Invalid Character", delete this token
- Syntax error on tokens, delete these tokens
- Syntax error, insert ")" to complete Arguments
- Missing semicolon
- Syntax error on token "Invalid Character", delete this token
- Syntax error, insert ")" to complete PrimaryNoNewArray
- Syntax error on tokens, ArrayLiteralHeader expected instead
- Syntax error on token "^", invalid (

请告诉我如何将电子邮件验证正则表达式正确包含在代码中?

修改

在浏览器控制台中尝试。完全相同的语法适用于chrome js控制台。这是输出

Web console

由于

3 个答案:

答案 0 :(得分:2)

Javascript正则表达式文字需要/将其括起来。

if(email.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/) )
{
    //matched...
} else {
    //not matched..
}

答案 1 :(得分:1)

在Javascript中,您使用如下所示的正则表达式:

myString.match(/<regexHere>/)

答案 2 :(得分:0)

正则表达式必须在javascript中用“/”封装:

    if (/[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.test(subject)) {
        // Successful match
    } else {
        // Match attempt failed
    }