2

我从这篇文章中得到了 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 控制台。这是输出

网页控制台

谢谢

4

3 回答 3

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..
}
于 2012-09-02T12:11:29.563 回答
1

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

myString.match(/<regexHere>/)
于 2012-09-02T12:11:24.390 回答
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
    }
于 2012-09-02T12:11:33.277 回答