我从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控制台。这是输出
由于
答案 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
}