[英]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.