簡體   English   中英

使用javascript,如何拆分顯示名稱中帶有逗號或“ @”的電子郵件ID列表?

[英]Using javascript, how can i split list of email ids that has comma or “@”even in display name?

例如:

var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>"

首先,我假設您對該字符串使用雙引號:

var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>";

然后使用以下正則表達式進行匹配:

var emails = s.match(/<.*?>/g);

產生這個數組:

["<jim@l.com>", "<john@p.com>", "<jack@k.com>"]

通過一些技巧,您也可以擺脫<>

emails = s.match(/<.*?>/g).join(',').replace(/<|>/g, '').split(',');

如果實際上您實際上想要的是“顯示名稱”,則可以執行以下非常類似的操作:

var names = s.match(/'.*?'/g);

它將產生此數組:

["'Jim,Rose'", "'John'", "'jack@k.com'"]

我已經看到Google的Closure庫是最好的解決方案。 請參閱http://www.sbrian.com/2011/01/javascript-email-address-validation.html 集成所需的文件確實很容易。

您可以嘗試以下方法:

var s = "'Jim,Rose'<jim@l.com>, 'John'<john@p.com>, 'jack@k.com'<jack@k.com>";
matches = s.match(/'[^']+' *<[^>]+>/g);

如果所有名稱都用單引號引起來,則此方法應該起作用。 如果您需要捕捉諸如“ Mike O'Niel”之類的東西,則會更加復雜。 為此:

matches = s.match(/(['"]).+?\1 *<[^>]+>/g);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM