-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchallenge_05.js
More file actions
123 lines (113 loc) · 4.19 KB
/
challenge_05.js
File metadata and controls
123 lines (113 loc) · 4.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
const ENTRY_LIST = `PYmt8hd,jdcrLI,jdcrli@gmail.com,27,London
aN21Mhj,yoHrWHE,oHrWHE@example,40,
,oHrWHE,oHrWHE@a.com,a,
2RVxZLzIcs,jvNCJj,jvncjj@hotmail.com,45,Berlin
XUOUmi9,utuPMN,htuPMN@invalid,,Berlin
UXMmi9,htuPMN,@@@.com,,Berlin
Y2FCxmg*E4L,4vZtIH,dvztih@gmail.com,27,London
Y2FgXXE4L,DvZtIH,dvztih@gmail.com,27,London
wYR2DOE,vsWtBk,vsWtBk@example,,Paris
(MIDUni,3vsWtBk,midu@gmail.com,,Barcelona
G1WV7gK,RFHWCi,rfhwci@yahoo.com,53,Sydney
OQc_YTY,bGyjPo,,,BuenosAires
OQc_YTY,eGyjPo,bGyjPo@example,,Caracas
uzHXNR,IFLUDB,ifludb@hotmail.com,46,Madrid
u56gsjt,eBbEBV,eBbEBV@invalid,49,
QH87Wd,fImzHM,fimzhm@gmail.com,38,Madrid
Dhy92jh,pB1P64,pB1P64@hotmail.com,52,CDMX
6DkGW62P,ldmcDE,ldmcde@gmail.com,33,Madrid
B89dht_,nceCp2,nceCp2@invalid,68,Rome
O8TsZ7,jauTbB,jautbb@gmail.com,45,New York
tIR9N,yOkZBg,yokzbg@yahoo.com,68,Tokyo
1KN4ZOe,emuBwK,emubwk@gmail.com,27,London
2efL9,zAPgvK,zapgvk@outlook.com,33,Paris
f9Fw1q6tWq,djrWrL,djrwrl@outlook.com,20,New York
weoFk,prYGAC,hrygac@yahoocom,19,Sydney
mZf2R,LnSBAh,lnsbah@outlook.com,18,Paris
KIuLH,kKpddF,kkpddf@outlook.com,32,Rome
4359Rm,LAlhya,lalhya@outlook.com,62,London
KYQZq9yg,ZTvLpI,ztvlpi@outlook.com,27,Madrid
9hC&UV8,wWZxgp,mwzxgp@yahoo.com,49,Madrid
ra7wsGC,DFgbNn,dfgbnn@yahoo.com,40,New York
0=uUIzOsDN,ngPCGN,jgpcgn@gmail.com,57,Rome
zaor8f,WXQwzY,wxqwzy@yahoo.com,27,Paris
KTMoYqn,ZFSwLp,zfswlp@yahoo.com,57,Berlin
OJMgD,mmJyyc,mmjyyc@yahoo.com,30,Paris
J49HyU,udMyki,udmyki@hotmail.com,35,Rome
ZBiXSV,gQXcjA,gqxcja@yahoo.com,68,Paris
lP6GLm6,ljiCsY,ljicsy@gmail.com,45,Berlin
neZAj,bBIbVF,bbibvf@gmail.com,58,London
9uLq2KwoIr,OWXXBl,owxxbl@outlook.com,46,Sydney
RELT7fgmnD,dplQIl,,58,New York
HDKVi,AxLzOk,axlzok@hotmail.com,68,New York
Mp7lqou9z,SJzlEy,sjzley@gmail.com,63,London
6rDP6BCQv,nnqyAa,nnqyaa@outlook.com,45,New York
OyH2qjKxZ,nwWZuw,nwwzuw@yahoo.com,56,Rome
L8DHMmE44p,MoAcMe,moacme@hotmail.com,67,Paris
TlSmF,fPmepA,fpmepa@outlook.com,42,Rome
E1QH9ci7,hlyLQF,hlylqf@outlook.com,41,New York
mYOpY23,SHmAju,shmaju@hotmail.com,64,Rome
XAEJitTlla,qrpsKE,qrpske@hotmail.com,52,Rome
tS4XE,DoxbRW,doxbrw@outlook.com,26,Tokyo
zGmt6Bg,JXcvKW,jxcvkw@hotmail.com,68,Madrid
4t7td1EpM,cnxBsn,cnxbsn@outlook.com,42,Madrid
USYVWP9,Zhszyq,zhszyq@gmail.com,45,Berlin
xPsBdFX,guBqHO,gubqho@gmail.com,56,Berlin
vjs0muFgD,GlNbyN,glnbyn@hotmail.com,43,Paris
MJjqv,lfmiGU,lfmigu@outlook.com,60,London
jZlHAbXel,YOfnFV,yofnfv@hotmail.com,38,Tokyo
IykL8QNPN,ndBTcB,ndbtcb@gmail.com,28,Berlin
Vq7WI4,CLCYRN,clcyrn@gmail.com,25,Tokyo
utGGulT,RdmXuh,rdmxuh@yahoo.com,68,Rome
FQeos5,aMlzfe,amlzfe@gmail.com,43,Berlin
bJKfMUASk,RnEDLz,rnedlz@outlook.com,36,Berlin
p3GXT0,Meohff,meohff@gmail.com,27,Madrid
TCsiyDQpIl,FdMArs,fdmars@outlook.com,63,Berlin
cb6RRrx,ZCyfir,zcyfir@gmail.com,45,Rome
Fm7V1tR34,VJlNXN,vjlnxn@hotmail.com,32,Rome
VY5EHZHY,EfaHWA,efahwa@outlook.com,25,New York
EkCCjg5e9,JvowjF,jvowjf@outlook.com,68,Paris
KVJd37LC,IzgjKS,izgjks@gmail.com,31,Paris`;
const splitEntryList = ENTRY_LIST.split("\n");
let invalidCases = [];
const isAlphaNumeric = (str) => {
return /^[a-z0-9]+$/i.test(str) ? true : false;
};
const isEmailFormat = (str) => {
return /^[a-z0-9]+@[a-z0-9]+\.[a-z0-9]+$/i.test(str) ? true : false;
};
splitEntryList.forEach((entry) => {
const splittedEntry = entry.split(",");
// - id: exists and is alphanumeric
const id = splittedEntry[0];
if (!id || !isAlphaNumeric(id)) {
invalidCases.push(entry);
return;
}
// - username: exists and is alphanumeric
const username = splittedEntry[1];
if (!username || !isAlphaNumeric(username)) {
invalidCases.push(entry);
return;
}
// - email: exists and is valid (follows the patter user@domain.com)
const email = splittedEntry[2];
if (!email || !isEmailFormat(email)) {
invalidCases.push(entry);
return;
}
// - location: is optional but if it appears it is a string
const location = splittedEntry[4];
if (location && typeof location !== "string") {
invalidCases.push(entry);
return;
}
// - age: is optional but if it appears it is a number
const age = Number(splittedEntry[3]);
if (age && typeof age !== "number") {
invalidCases.push(entry);
return;
}
});
let secretMessage = invalidCases.map((user) => user.split(",")[1][0]).join("");
console.log(secretMessage);