2011-08-04 28 views
1

我在这个简单的JavaScript代码中收到语法错误。我只是想检查模式上的atring。任何人都可以告诉我什么是错的?JavaScript模式中的语法错误

var a = '[email protected]'; 
var pattern = [a-zA-Z0-9_]+[.[a-zA-Z0-9]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+; 
console.log('The comparison is ',a.match(pattern)); 

谢谢。

+0

你的模式是不是正则表达式。它只是一堆字符,它会创建一个语法错误。正则表达式文字以'/'开头和结尾。 –

回答

4

尝试

var pattern = /[a-zA-Z0-9_]+[.[a-zA-Z0-9]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+/; 

模式通常是由//分隔。请参阅RegExp on MDC

+0

是的,用“/”语法错误消失,奇怪的是匹配返回null。我认为它应该匹配模式 – Juanillo

+0

检查方括号'['和']'的用法......这很奇怪......我想你想要'[.a-zA-Z0-9]'而不是'[。[a-zA-Z0-9] +]'。但是你也应该知道,电子邮件地址的正确表达式更加复杂。有关更多详细信息,请参阅http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses。 BTW:'/ [a-zA-Z0-9 _] + [.a-zA-Z0-9] * [a-zA-Z0-9 _] + [.a-zA-Z] + /'匹配.. 。 – rdmueller

0

你没有模式上的分隔符。你有没有试过

var pattern = '[a-zA-Z0-9_]+[.[a-zA-Z0-9]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+'; 

1

尝试

var pattern = /^[a-zA-Z0-9_]+[.[a-zA-Z0-9]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+$/;