2012-07-04 35 views
0

我有這個正則表達式匹配字符串中的電子郵件地址。與javascript的電子郵件finder正則表達式

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

這不是世界上最好的正則表達式,但足夠用於我的使用。

當我用這用JavaScript這樣的:

var emails = string.match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})"); 

我只是匹配的第一個電子郵件地址,因爲我沒有使用G修飾符這是正常的。

的問題是,當我使用G修飾符這樣的:

var emails = email[0].match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})g"); 

的變種的電子郵件爲空,所以我的比賽不能正常工作。

如果你可以請幫助我這個。

謝謝。

+0

請提供一個真實的例子來測試我沒有獲得g部分以及 – shareef

+0

可能是[如何使用正則表達式來驗證電子郵件地址?]的副本(http://stackoverflow.com/questions/201323/how-to-use-a-regular-expression-to -validate-an-email-addresses) – Ria

回答

4

嘗試:

var emails = yourString.match(/([a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi); 
+0

謝謝Sudhir,你的例子很好用。我已經嘗試過了。 –

+0

嗨,你可以提供一個鏈接學習正則表達式和一個工具,以配合它,是JavaScript的正則表達式相同的Java匹配方法作爲語法我的意思請回答我:) – shareef

+0

我搜索谷歌,但我需要你推薦給我 – shareef

1

試試這個我把它用在servlet的驗證過濾器在我的系統我不知道,如果它在JavaScript

"^[a-zA-Z0-9._][email protected][a-zA-Z0-9._]{3,}$" 
+0

謝謝shareef。 –

相關問題