[英]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#map
和string#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 $
字符串结尾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.