2011-06-07 41 views
1

給定一個字符串,如何匹配所有電子郵件內的「<>」。JavaScript正則表達式從字符串中獲取所有電子郵件

例如:

我可以有[email protected]<[email protected]>,我只希望匹配的[email protected]

謝謝!

+0

你的字符串看起來像是'[email protected] <[email protected]>',因爲這與你所說的不同,我認爲。此外,正則表達式不是一切的答案。電子郵件旨在通過向該地址發送電子郵件來進行驗證,而不是通過猜測什麼是有效的。有很多理由讓他們無效。 – jcolebrand 2011-06-07 18:05:01

回答

2

要真正徹底,你可以從RFC822, which describes valid email address formats然而實現正則表達式,你可以通過做一些快速和簡單的像這樣節省時間和頭痛:

var extractEmailAddress = function(s) { 
    var r=/<?(\[email protected][^\s>]+)>?/, m=(""+s).match(r); 
    return (m) ? m[1] : undefined; 
}; 
extractEmailAddress('[email protected]'); // => "[email protected]" 
extractEmailAddress('<[email protected]>'); // => "[email protected]" 

當然,這個功能將是很寬容字符串可能甚至遠程看起來像一個電子郵件地址,所以如果質量是一個問題,可以改進正則表達式「r」。

相關問題