Вот пример решения JavaScript для 28-го дня конкурса «Регулярные выражения, шаблоны и введение в базы данных» на HackerRank:
function findValidEmails(emails) {
const validEmails = [];
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
for (let i = 0; i < emails.length; i++) {
if (regex.test(emails[i])) {
validEmails.push(emails[i]);
}
}
return validEmails;
}
const emails = [
"test.email+regex@example.com",
"test.email@example.com",
"test.email@example",
"test.email@example.co.jp",
];
const validEmails = findValidEmails(emails);
console.log(validEmails);
В этом примере у нас есть функция под названием findValidEmails, которая принимает на вход массив адресов электронной почты и возвращает массив действительных адресов электронной почты. Он использует регулярные выражения (regex) для проверки каждого адреса электронной почты.
Шаблон регулярного выражения, использованный в этом примере, /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA- Z]{2,}$/проверяет следующие условия:
- Локальная часть адреса электронной почты может содержать буквенно-цифровые символы, точки, символы подчеркивания, знаки процента, а также символы плюс и минус.
- Доменная часть адреса электронной почты может содержать буквенно-цифровые символы, точки и дефисы.
- Домен верхнего уровня (TLD) должен состоять как минимум из двух букв.
Функция перебирает каждое письмо во входном массиве и проверяет его на соответствие шаблону регулярного выражения с помощью метода test. Если электронное письмо соответствует шаблону, оно считается действительным и добавляется в массив validEmails.
Наконец, скрипт вызывает функцию findValidEmailsс образцом массива адресов электронной почты и записывает действительные адреса электронной почты в консоль.