-
Notifications
You must be signed in to change notification settings - Fork 27
/
Check.js
36 lines (30 loc) · 980 Bytes
/
Check.js
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
class Check {
constructor() {}
isPhoneNumber(text) {
return /^((?:\+[0-9][-\s]?)?\(?0?[0-9]{3}\)?[-\s]?[0-9]{3}[-\s]?[0-9]{2}[-\s]?[0-9]{2})$/.test(text);
}
arePhoneNumbers(phones = []) {
for (let i = 0; i < phones.length; i++) {
if (!this.isPhoneNumber(phones[i])) {
return false;
}
}
return true;
}
hideEmailCharacters(email) {
try {
const emailParts = email.split("@");
const username = emailParts[0];
const domain = emailParts[1].split(".");
const hiddenUsername = username.slice(0, 1) + username.slice(1).replace(/./g, "*");
const hiddenDomain = domain[0].slice(0, 1) + domain[0].slice(1).replace(/./g, "*");
if (domain.at(1) === undefined) {
return `${hiddenUsername}@${hiddenDomain}`;
}
const hiddenEx = domain[1];
return `${hiddenUsername}@${hiddenDomain}.${hiddenEx}`;
} catch (error) {
return email;
}
}
module.exports = Check;