JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript String Синтаксис регулярних виразів


Розглянемо базові моменти синтаксису регулярних виразів.


метасимволи

Регулярні вирази також можуть використовувати метасимволи - символи, які мають певний сенс:

  • \d : Відповідає любій цифрі від 0 до 9

  • \D : Відповідає будь-якому символу, який не є цифрою

  • \w : Відповідає будь-якій букві, цифрі або символу підкреслення (діапазони A-Z, a-z, 0-9)

  • \W : Відповідає будь-якому символу, який не є буквою, цифрою або символом підкреслення (тобто не знаходиться в наступних діапазонах A-Z, a-z, 0-9)

  • \s : Відповідає пробілу

  • \S : Відповідає будь-якому символу, який не є пропбілом

  • . : Відповідає любому символу

Тут треба зауважити, що метасимвол \w застосовується тільки для букв латинського алфавіту, кириличні символи для нього не підходять.

Так, стандартний формат номера телефону +1-234-567-8901 відповідає регулярному виразу \d-\d\d\d-\d\d\d-\d\d\d\d . Наприклад, замінимо числа номера нулями:

var phoneNumber = "+1-234-567-8901";
var myExp = /\d-\d\d\d-\d\d\d-\d\d\d\d/;
phoneNumber = phoneNumber.replace(myExp, "00000000000");
document.write(phoneNumber);

модифікатори

Крім вище розглянутих елементів регулярних виразів є ще одна група комбінацій, яка вказує, які символи в рядку будуть повторюватися. Такі комбінації ще називають модифікаторами:

  • {n} : Відповідає n-ому кількості повторень попереднього символу. Наприклад, h{3} відповідає підрядку "hhh"

  • {n,} : Відповідає n і більш кількістю повторень попереднього символу. Наприклад, h{3,} відповідає підрядками "hhh", "hhhh", "hhhhh" і т.д.

  • {n,m} : Відповідає від n до m повторень попереднього символу. Наприклад, h{2, 4} відповідає підрядками "hh", "hhh", "hhhh".

  • ? : Відповідає одному входженню попереднього символу в підрядку або його відсутності в підрядку. Наприклад, /h?ome/ відповідає підрядками "home" і "ome".

  • + : Відповідає одному і більше повторень попереднього символу

  • * : Відповідає будь-якій кількості повторень або відсутності попереднього символу

  • ^ : Відповідає початку рядка. Наприклад, ^h відповідає рядку "home", але не "ohma", так як h повинен представляти початок рядка

  • $ : Відповідає кінцю рядка. Наприклад, к$ відповідає рядку " будинок ", так як рядок повинен закінчуватися на букву к

Наприклад, візьмемо той же номер телефону. Йому відповідає формальний вираз \d-\d\d\d-\d\d\d-\d\d\d\d . Однак за допомогою вище розглянутих комбінацій ми його можемо спростити: \d-\d{3}-\d{3}-\d{4}

Також треба відзначити, що так як символи ? , + , * Мають особливий сенс в регулярних виразах, то щоб їх використовувати в звичайних для них значеннях (наприклад, нам треба замінити знак плюс в рядку на мінус), то дані символи треба екранувати за допомогою слеша \+ :

var phoneNumber = "+1-234-567-8901";
var myExp = /\+\d-\d{3}-\d{3}-\d{4}/;
phoneNumber = phoneNumber.replace(myExp, "80000000000");
document.write(phoneNumber);

Окремо розглянемо застосування комбінації ' \b ', яка вказує на відповідність в межах слова. Наприклад, у нас є такий рядок: "Мови прграмування: Java, JavaScript, C++". Згодом ми вирішили, що Java треба замінити на C#. Але проста заміна призведе також до заміни рядка "JavaScript" на "C# Script", що неприпустимо. І в цьому випадку ми можемо проводити заміну, якщо регуляний вираз відповідає всьому слову:

var initialText = "Мови прграмування: Java, JavaScript, C++";
var exp = /Java\b/g;
var result = initialText.replace(exp, "C#");
document.write(result); // Мови прграмування: C#, JavaScript, C++

Але при використанні ' \b ' треба враховувати, що в JavaScript відсутня повноцінна підтримка Unicode, тому застосовувати ' \b ' ми зможемо тільки до англомовних слів.


Використання груп в регулярних виразах

Для пошуку в рядку більш складних відповідностей застосовуються групи. У регулярних виразах групи розміщують в дужки. Наприклад, у нас є наступний код html, який містить тег зображення: '<img src = "picture.png" />'. І припустимо, нам треба виокремити з цього коду шляху до зображень:

var initialText = '<img src= "picture.png" />'; 
var exp = /[a-z]+\.(png|jpg)/i;
var result = initialText.match(exp); 

result.forEach(function(value, index, array){
     
    document.write(value + "<br/>");
})

Результат браузера:

[code][az]+\.[/tag_code]) Вказує на наявність в рядку від 1 і більше символів з діапазону az , після яких йде крапка . . Так як крапка є спеціальним символом в регулярних виразах, то вона екранується слешем \. . А далі йде група: (png|jpg) . Ця група вказує, що після крапки може використовуватися як " png ", так і " jpg ".[/p]

Наш партнер:
beta test mp3 playlist downloader