[英]Regex to capture domain name from string including email addresses for specific tld's
[英]Getting only the email addresses domain name from an array of email addresses
我整天都在堆棧溢出和谷歌上搜索,但找不到我需要的確切內容。 我有一組 email 地址,我將從用戶那里獲得。 Ex. [asdfgg@gmail.com, fgtrreds@yahoo.com, dgfit@gmail.com]
Ex. [asdfgg@gmail.com, fgtrreds@yahoo.com, dgfit@gmail.com]
。 我想拆分所有 email 地址,然后將[@gmail.com, @yahoo.com]
等推送到新數組。
這是 JavaScript function 我整天都在搞砸
function EmailFunction() {
var emailNames = [];
var emailDomains = [];
emailNames = $("#emailing").val();
var len = emailNames.length;
for (var i = 0; i < len; i++) {
var domain = emailNames.split("@").pop();
emailDomains.push(domain);
}
console.log("Email Domains = " + domain);
console.log("Function Names = " + emailNames);
}
您缺少在emailNames
之前添加[i]
的方法,如下所示
function onlyUnique(value, index, self) { return self.indexOf(value) === index; } function EmailFunction() { var emailNames = []; var emailDomains = []; emailNames = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com'] var len = emailNames.length; for (var i = 0; i < len; i++) { var domain = emailNames[i].split("@").pop(); emailDomains.push(domain) var unique = emailDomains.filter(onlyUnique); } console.log(unique) } EmailFunction()
您只需一行即可完成
const emailNames = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com']; const result = Object.keys(emailNames.map(e => e.split("@")[1]).reduce((o, e) => ({...o, [e]: null }), {})); console.log(result);
結果,我只給出唯一的域。 為此,我使用 foreach 進行迭代,使用 substr 和 indexof 獲取域(包括 @),查看它是否在 resultarray 中。 如果不推它那里。
function getDomains(mailings) { let result = []; mailings.forEach(mail => { let domain = mail.substr(mail.indexOf('@')); if (result.indexOf(domain) == -1) result.push(domain); }); return result; } let mailings = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com']; console.log(getDomains(mailings));
由於您不希望最終列表中出現重復項,因此您可以這樣做
const emailNames = ['asdfgg@gmail.com', 'fgtrreds@yahoo.com', 'dgfit@gmail.com'];
car emailDomains = [];
for(let i=0; i < emailNames.length; i++) {
let domain = emailNames[i].split("@")[1];
if(emailDomains.imdexOf(domain) == -1) {
emailDomains.push(domain);
}
}
console.log(emailDomains);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.