简体   繁体   English

Javascript arrays email substring 改成全名、名和姓

[英]Javascript arrays email substring into full name, firstname and lastname

      I know my questions are similar to other questions but I could not figure it. 

I am practicing javascript.我正在练习 javascript。 I have arrays of emails.我有 arrays 的电子邮件。 from that email I want to get three out puts of strings fullname, firstname and lastname inside one map function.从那个 email 我想在一个 map function 中得到三个字符串全名、名字和姓氏的输出。 I can able to get output first name by reading one stack-overflow questions.通过阅读一个堆栈溢出问题,我可以得到 output 的名字。 I am able get full name by I get output john.doe , I want johndoe .我可以得到全名,我得到 output john.doe ,我想要johndoe Could not figure it out last name doe .无法弄清楚姓氏doe

My example email address is like this: john.doe@co.uk我的例子 email 地址是这样的: john.doe@co.uk

My expected output is我预期的 output 是

firstname: 'john'名字:'约翰'

fullname: johndoe全名: johndoe

lastname: doe姓氏: doe

This is my code这是我的代码

const Names = (emails) => {
  emails.map(i => {
    console.log("firstname", i.substring(0, i.indexOf(".")));
    console.log("fullname", i.substring(0, i.lastIndexOf("@")));
    console.log("lastname");
  })
};

Names(emails)

 const emails = [ "peter.pittman@taitos.com", "ayden.reed@starkindustries.ss", "kiefer.franks@amazonia.hk", "oz.mcguire@tortelloni.zw", "ellisandro.noble@bluthhousing.party", "alyas.briggs@taitos.ninja", "windsor.raymond@hungryhungyhippopottumoses.co.uk", "daniyal.brock@hungryhungyhippopottumoses.ug", "samatar.benson@duffbeer.org", "jaime.freeman@gringottsbank.li", "aaron.pace@starkindustries.org", "guerin.mcgowan@taitos.li", "believe.cote@virtucon.hk", "abdalroof.ray@oscorp.co.uk", "blake.barrett@tortelloni.org", "bradlie.brooks@dundermifflin.ug", "rayyan.garza@tortelloni.ug", "declan.wood@dundermifflin.ug", "tymon.blackburn@oscorp.com", "joash.duffy@wonkaindustries.ug", "aleksander.ford@umbrellacorporation.fi", "jaida.colon@macrosloft.se", "jevan.jensen@lospolloshermanos.zw", "abubakar.palmer@dundermifflin.org", "cator.joyce@lospolloshermanos.org", "valen.henry@gringottsbank.co.uk", "taylor-jay.blackburn@wonkaindustries.ug", "leonardo.mcfadden@goldenstatuettes.co.uk", "noel.schneider@hungryhungyhippopottumoses.co.uk", "will.osborne@tasavallanpresidentti.com", "arda.aguilar@oscorp.fi", "omri.walls@virtucon.ug", "lliam.briggs@tortelloni.se", "kris.lester@amazonia.fi", "skye.soto@wonkaindustries.se", "dermot.vang@goldenstatuettes.com", "cruiz.simmons@cookykitchens.co.uk", "tymoteusz.riley@tortelloni.fi", "kaidyn.hays@aperaturescience.party", "apisai.fletcher@oscorp.co.uk", "kedrick.mcfadden@cookykitchens.com", "archibald.elliott@gringottsbank.hk", "kjae.hurley@umbrellacorporation.com", "tymon.nielsen@hungryhungyhippopottumoses.fi", "james.dejesus@amazonia.party", "reno.silva@gringottsbank.ug", "tayyib.brooks@taitos.ss", "cormack.alexander@duffbeer.ss", "obieluem.guerra@umbrellacorporation.party", "hector.moran@dundermifflin.co.uk", "logan.parrish@wonkaindustries.com", "robin.rivers@starkindustries.zw", "albie.spence@tasavallanpresidentti.hk", "qasim.schwartz@duffbeer.zw", "aodhan.cooper@tasavallanpresidentti.org", "eassan.hobbs@lospolloshermanos.org", "parkash.juarez@wonkaindustries.party", "teos.horton@haxhoont.se", "kuba.larsen@duffbeer.ninja", "eisa.beard@umbrellacorporation.li", "hamza.french@starkindustries.org", "sung.randall@taitos.ss", "samir.bond@virtucon.org", "conlyn.mckee@goldenstatuettes.com", "thiago.hooper@starkindustries.com", "demetrius.holland@macrosloft.zw", "uchenna.oneill@hungryhungyhippopottumoses.zw", "windsor.steele@hungryhungyhippopottumoses.fi", "keiryn.macias@tasavallanpresidentti.org", "kehinde.allen@cookykitchens.hk", "yuri.ramirez@macrosloft.zw", "ruan.perez@umbrellacorporation.org", "dyllon.young@dundermifflin.zw", "lockey.mcmahon@goldenstatuettes.fi", "lyndsay.haynes@goldenstatuettes.ninja", "dareh.grimes@macrosloft.co.uk", "veeran.vinson@cookykitchens.fi", "jayke.schroeder@lospolloshermanos.org", "aronas.berry@bluthhousing.li", "jonothan.donaldson@gringottsbank.zw", "kenzeigh.weber@umbrellacorporation.se", "cesare.huber@tasavallanpresidentti.com", "uzair.harris@virtucon.ninja", "kelan.yates@taitos.co.uk", "thomson.gonzales@bluthhousing.co.uk", "keaton.green@umbrellacorporation.hk", "jazeb.kinney@duffbeer.co.uk", "ronald.flores@starkindustries.hk", "alastair.moses@umbrellacorporation.se", "ogheneochuko.ratliff@aperaturescience.se", "kenton.conley@gringottsbank.ninja", "kashif.trujillo@bluthhousing.hk", "saghun.ayers@taitos.hk", "kamil.eaton@lospolloshermanos.org", "bailee.henson@goldenstatuettes.li", "alexei.stanton@haxhoont.li", "basher.clarke@taitos.li", ] const Names = (emails) => { emails.map(i => { console.log("firstname", i.substring(0, i.indexOf("."))); console.log("fullname", i.substring(0, i.lastIndexOf("@"))); console.log("lastname"); }) }; Names(emails)

For fullname, you cane use replace(".", "") to remove the '.'对于全名,您可以使用replace(".", "")删除 '.' So for fullname it can be: i.substring(0, i.lastIndexOf("@")).replace(".", "")所以对于全名,它可以是: i.substring(0, i.lastIndexOf("@")).replace(".", "")

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

you can try this你可以试试这个

const Names = (emails) => {
  emails.forEach(i => {
    const indexDot = i.indexOf(".");
    const indexAt = i.lastIndexOf("@");
    console.log("firstname", i.substring(0, indexDot));
    console.log("fullname", i.substring(0, indexAt));
    console.log("lastname", i.substring(indexDot+1, indexAt));
  })
};

You can use array#map with string#split to get names.您可以使用array#mapstring#split来获取名称。

 const emails = [ "peter.pittman@taitos.com", "ayden.reed@starkindustries.ss", "kiefer.franks@amazonia.hk", "oz.mcguire@tortelloni.zw", "ellisandro.noble@bluthhousing.party", "alyas.briggs@taitos.ninja", "windsor.raymond@hungryhungyhippopottumoses.co.uk", "daniyal.brock@hungryhungyhippopottumoses.ug", "samatar.benson@duffbeer.org", "jaime.freeman@gringottsbank.li", "aaron.pace@starkindustries.org", "guerin.mcgowan@taitos.li", "believe.cote@virtucon.hk", "abdalroof.ray@oscorp.co.uk", "blake.barrett@tortelloni.org", "bradlie.brooks@dundermifflin.ug", "rayyan.garza@tortelloni.ug", "declan.wood@dundermifflin.ug", "tymon.blackburn@oscorp.com", "joash.duffy@wonkaindustries.ug", "aleksander.ford@umbrellacorporation.fi", "jaida.colon@macrosloft.se", "jevan.jensen@lospolloshermanos.zw", "abubakar.palmer@dundermifflin.org", "cator.joyce@lospolloshermanos.org", "valen.henry@gringottsbank.co.uk", "taylor-jay.blackburn@wonkaindustries.ug", "leonardo.mcfadden@goldenstatuettes.co.uk", "noel.schneider@hungryhungyhippopottumoses.co.uk", "will.osborne@tasavallanpresidentti.com","arda.aguilar@oscorp.fi", "omri.walls@virtucon.ug", "lliam.briggs@tortelloni.se", "kris.lester@amazonia.fi", "skye.soto@wonkaindustries.se", "dermot.vang@goldenstatuettes.com", "cruiz.simmons@cookykitchens.co.uk"], users = emails.map(mail => { const [fullName] = mail.split('@'); const [firstName, lastName] = fullName.split('.'); return { fullName: `${firstName}${lastName}`, firstName, lastName }; }); console.log(users);
 .as-console-wrapper { max-height: 100%;important: top; 0; }

 const emails=["peter.pittman@taitos.com","ayden.reed@starkindustries.ss","kiefer.franks@amazonia.hk","oz.mcguire@tortelloni.zw","ellisandro.noble@bluthhousing.party","alyas.briggs@taitos.ninja","windsor.raymond@hungryhungyhippopottumoses.co.uk","daniyal.brock@hungryhungyhippopottumoses.ug"] let re = /^(?<first>\w+)\.(?<second>\w+)@/ let result = emails.map(e => { let {first,second} = e.match(re).groups return {fulll:first+second,first,second} }) console.log(result)

use replace to remove '.'.使用替换删除“。”。

lastname can be get in substring between '.' lastname 可以在 substring 之间的 '.' 中获取。 and '@'和 '@'

 const emails = [ "peter.pittman@taitos.com", "ayden.reed@starkindustries.ss", "kiefer.franks@amazonia.hk", "oz.mcguire@tortelloni.zw", "ellisandro.noble@bluthhousing.party", "alyas.briggs@taitos.ninja", "windsor.raymond@hungryhungyhippopottumoses.co.uk", "daniyal.brock@hungryhungyhippopottumoses.ug", "samatar.benson@duffbeer.org", "jaime.freeman@gringottsbank.li", "aaron.pace@starkindustries.org", "guerin.mcgowan@taitos.li", "believe.cote@virtucon.hk", "abdalroof.ray@oscorp.co.uk", "blake.barrett@tortelloni.org", "bradlie.brooks@dundermifflin.ug", "rayyan.garza@tortelloni.ug", "declan.wood@dundermifflin.ug", "tymon.blackburn@oscorp.com", "joash.duffy@wonkaindustries.ug", "aleksander.ford@umbrellacorporation.fi", "jaida.colon@macrosloft.se", "jevan.jensen@lospolloshermanos.zw", "abubakar.palmer@dundermifflin.org", "cator.joyce@lospolloshermanos.org", "valen.henry@gringottsbank.co.uk", "taylor-jay.blackburn@wonkaindustries.ug", "leonardo.mcfadden@goldenstatuettes.co.uk", "noel.schneider@hungryhungyhippopottumoses.co.uk", "will.osborne@tasavallanpresidentti.com", "arda.aguilar@oscorp.fi", "omri.walls@virtucon.ug", "lliam.briggs@tortelloni.se", "kris.lester@amazonia.fi", "skye.soto@wonkaindustries.se", "dermot.vang@goldenstatuettes.com", "cruiz.simmons@cookykitchens.co.uk", "tymoteusz.riley@tortelloni.fi", "kaidyn.hays@aperaturescience.party", "apisai.fletcher@oscorp.co.uk", "kedrick.mcfadden@cookykitchens.com", "archibald.elliott@gringottsbank.hk", "kjae.hurley@umbrellacorporation.com", "tymon.nielsen@hungryhungyhippopottumoses.fi", "james.dejesus@amazonia.party", "reno.silva@gringottsbank.ug", "tayyib.brooks@taitos.ss", "cormack.alexander@duffbeer.ss", "obieluem.guerra@umbrellacorporation.party", "hector.moran@dundermifflin.co.uk", "logan.parrish@wonkaindustries.com", "robin.rivers@starkindustries.zw", "albie.spence@tasavallanpresidentti.hk", "qasim.schwartz@duffbeer.zw", "aodhan.cooper@tasavallanpresidentti.org", "eassan.hobbs@lospolloshermanos.org", "parkash.juarez@wonkaindustries.party", "teos.horton@haxhoont.se", "kuba.larsen@duffbeer.ninja", "eisa.beard@umbrellacorporation.li", "hamza.french@starkindustries.org", "sung.randall@taitos.ss", "samir.bond@virtucon.org", "conlyn.mckee@goldenstatuettes.com", "thiago.hooper@starkindustries.com", "demetrius.holland@macrosloft.zw", "uchenna.oneill@hungryhungyhippopottumoses.zw", "windsor.steele@hungryhungyhippopottumoses.fi", "keiryn.macias@tasavallanpresidentti.org", "kehinde.allen@cookykitchens.hk", "yuri.ramirez@macrosloft.zw", "ruan.perez@umbrellacorporation.org", "dyllon.young@dundermifflin.zw", "lockey.mcmahon@goldenstatuettes.fi", "lyndsay.haynes@goldenstatuettes.ninja", "dareh.grimes@macrosloft.co.uk", "veeran.vinson@cookykitchens.fi", "jayke.schroeder@lospolloshermanos.org", "aronas.berry@bluthhousing.li", "jonothan.donaldson@gringottsbank.zw", "kenzeigh.weber@umbrellacorporation.se", "cesare.huber@tasavallanpresidentti.com", "uzair.harris@virtucon.ninja", "kelan.yates@taitos.co.uk", "thomson.gonzales@bluthhousing.co.uk", "keaton.green@umbrellacorporation.hk", "jazeb.kinney@duffbeer.co.uk", "ronald.flores@starkindustries.hk", "alastair.moses@umbrellacorporation.se", "ogheneochuko.ratliff@aperaturescience.se", "kenton.conley@gringottsbank.ninja", "kashif.trujillo@bluthhousing.hk", "saghun.ayers@taitos.hk", "kamil.eaton@lospolloshermanos.org", "bailee.henson@goldenstatuettes.li", "alexei.stanton@haxhoont.li", "basher.clarke@taitos.li", ] const Names = (emails) => { emails.map(i => { console.log("firstname:", i.substring(0, i.indexOf(".")), ", fullname:", i.substring(0, i.lastIndexOf("@")).replace(".", ""), ", lastname:", i.substring(i.indexOf(".")+1, i.lastIndexOf("@"))); }) }; Names(emails)

If the email addressed can contain other characters than only word characters, and you want to check if there are characters after the @ as well for the full format, you might also use a pattern like:如果寻址的 email 可以包含其他字符,而不仅仅是单词字符,并且您想检查@之后是否还有完整格式的字符,您也可以使用如下模式:

^([^\s@.]+)\.([^\s@.]+)@[^\s@]+$

Then pattern matches:然后模式匹配:

  • ^ Start of string ^字符串开头
  • ([^\s@.]+) Capture group 1 , Match any char other than a whitespace char, @ or . ([^\s@.]+)捕获组 1 ,匹配除空白字符、 @或 之外的任何字符.
  • \. Match a dot匹配一个点
  • ([^\s@.]+) Capture group 2 , Match any char other than a whitespace char, @ or . ([^\s@.]+)捕获组 2 ,匹配除空白字符、 @或 之外的任何字符.
  • @[^\s@]+ Match the @ followed by 1 or more chars other than @ @[^\s@]+匹配@后跟 1 个或多个除@以外的字符
  • $ End of string $字符串结尾

Regex demo正则表达式演示

In the code, check if there is a match and use the 2 capture groups.在代码中,检查是否存在匹配并使用 2 个捕获组。 If there is not match, leave the string as is to not get undefined or unexpected behaviour.如果不匹配,请保持字符串不变,以免出现未定义或意外行为。

 const emails = ["peter.pittman@taitos.com", "peter@taitos.com"] let regex = /^([^\s@.]+)\.([^\s@.]+)@[^\s@]+$/ let result = emails.map(s => { let m = s.match(regex); if (m) { return { "fullname": m[1] + m[2], "firstname": m[1], "lastname": m[2] } } return s; }) console.log(result)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM