JavaScript: Регулярні вирази

Синтаксис RegExp та базові шаблони

📖 Теорія

Регулярний вираз (regex) — шаблон для пошуку в рядках.

Два способи створення:

💡 Приклад коду
Вивід:

                            
📝 ЗАВДАННЯ (3)
1.
Завдання 1: test() та match()
10 XP
Перевір та виведи:
1. Чи рядок 'hello123' містить цифри (\d+)
2. Знайди всі цифри в 'abc123def456ghi789' (\d+, прапор g)
3. Чи рядок 'Hello World' починається з великої літери (^[A-Z])
💡 Підказка: re.test(str) → boolean, str.match(re) → масив збігів
🔓 Розв'язок:
console.log(/\d+/.test('hello123'));
console.log('abc123def456ghi789'.match(/\d+/g));
console.log(/^[A-Z]/.test('Hello World'));
Вивід:

                                

2.
Завдання 2: replace та split
20 XP
1. Замін всі пробіли у 'hello world foo' на одинарний пробіл (\s+)
2. Розбий рядок 'one1two2three3four' по цифрах на слова
3. Видали всі не-літерні символи з '@hello!world#2024'
💡 Підказка: str.replace(/шаблон/g, замінювач), str.split(/шаблон/)
🔓 Розв'язок:
console.log('hello   world   foo'.replace(/\s+/g, ' '));
console.log('one1two2three3four'.split(/\d/));
console.log('@hello!world#2024'.replace(/[^a-zA-Z]/g, ''));
Вивід:

                                

3.
Завдання 3: Валідація даних
30 XP
Напиши функції-валідатори (повертають true/false):
1. isEmail(str) — email (щось@щось.домен)
2. isPhone(str) — телефон +380XXXXXXXXX
3. isStrongPassword(str) — мін 8 символів, є велика, мала літера і цифра

Виведи результати тестів.
💡 Підказка: Email: /^[\w.]+@[\w]+\.[a-z]{2,}$/i. Пароль: окремі lookahead або перевір кожну умову
🔓 Розв'язок:
const isEmail = s => /^[\w.+-]+@[\w-]+\.[a-z]{2,}$/i.test(s);
const isPhone = s => /^\+380\d{9}$/.test(s);
const isStrongPassword = s => s.length >= 8 && /[A-Z]/.test(s) && /[a-z]/.test(s) && /\d/.test(s);

console.log(isEmail('user@example.com'));
console.log(isEmail('not-email'));
console.log(isPhone('+380991234567'));
console.log(isPhone('0991234567'));
console.log(isStrongPassword('MyPass123'));
console.log(isStrongPassword('weak'));
Вивід: