2011-08-04 48 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]+]+$/;