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 Об'єкт RegExp. Регулярні вирази


Регулярні вирази представляють шаблон, який використовується для пошуку або модифікації рядка. Для роботи з регулярними виразами в JavaScript визначено об'єкт RegExp .

Визначити регулярний вираз можна двома способами:

var myExp = /hello/;
var myExp = new RegExp("hello");

Використовується тут регулярний вираз досить просто: він складається з одного слова " hello ". У першому випадку вираз поміщається між двома косими рисами / , а в другому випадку використовується конструктор RegExp , в який вираз передається у вигляді рядка.


методи RegExp

Щоб визначити, чи відповідає формальним виразом рядок, в об'єкті RegExp визначено метод test () . Цей метод повертає true , якщо рядок відповідає регулярному виразу, і false , якщо не відповідає.

var initialText = "hello world!";
var exp = /hello/;
var result = exp.test(initialText);
document.write(result + "<br/>"); // true
 
initialText = "beautifull wheather";
result = exp.test(initialText);
document.write(result); // false - в рядку initialText немає "hello"

Аналогічно працює метод exec - він також перевіряє, чи відповідає рядок регулярному виразу, тільки тепер цей метод повертає ту частину рядка, яка відповідає виразу. Якщо відповідностей немає, то повертається значення null .

var initialText = "hello world!";
var exp = /hello/;
var result = exp.exec(initialText);
document.write(result + "<br/>"); // hello
 
initialText = "beautifull wheather";
result = exp.exec(initialText);
document.write(result); // null

Групи символів

Регулярний вираз не обов'язково складається зі звичайних рядків, але також може включати спеціальні елементи синтаксису регулярних виразів. Один з таких елементів представляє групи символів, укладені в квадратні дужки. наприклад:

var initialText = "обороноздатність";
var exp = /[абв]/;
var result = exp.test(initialText);
document.write(result + "<br/>"); // true
 
initialText = "місто";
result = exp.test(initialText);
document.write(result); // false

Вираз [абв] вказує на те, що рядок повинен мати одну з трьох букв.

Якщо нам треба визначити наявність в рядку буквених символів з певного діапазону, то можна зразу поставити цей діапазон:

var initialText = "обороноздатність";
var exp = /[а-я]/;
var result = exp.test(initialText);
document.write(result + "<br/>"); // true
 
initialText = "3di345";
result = exp.test(initialText);
document.write(result); // false

В даному випадку рядок повинен містити хоча б один символ з діапазону а-я .

Якщо, навпаки, не треба, щоб рядок мав тільки певні символи, то необхідно в квадратних дужках перед перерахуванням символів ставити знак ^ :

var initialText = "обороноздатністсть";
var exp = /[^а-я]/;
var result = exp.test(initialText);
document.write(result + "<br/>"); // false
 
initialText = "3di01234";
exp = /[^0-9]/;
result = exp.test(initialText);
document.write(result); // true

У першому випадку рядок не повинен мати тільки символи з діапазону а-я , але оскільки рядок "обороноздатність" складається тільки з символів з цього діапазону, то метод test() повертає false , тобто регулярний вираз не відповідає строці.

У другому випадку ( " 3di01234 ") рядок не повинен складатися тільки з цифрових символів. Але так як в рядку також є і букви, то рядок відповідає регулярному виразу, тому метод test повертає значення true .

При необхідності ми можемо збирати комбінації виразів:

var initialText = "вдома";
var exp = /[дт]о[нм]/;
var result = exp.test(initialText);
document.write(result); // true

Вираз [дт]о[нм] вказує на ті рядки, які можуть містити підрядка " вдома ", " том ", " дон ", " тон ".


властивості виразів

  • Властивість global дозволяє знайти всі підрядки, які відповідають регулярному виразу. За замовчуванням при пошуку підстрок регулярний вираз вибирає першу-ліпшу підстроку з рядка, яка відповідає виразу. Хоча в рядку може бути безліч підстрок, які також відповідають виразу. Для цього застосовується ця властивість у вигляді символу g в виразах

  • Властивість ignoreCase дозволяє знайти підстроки, які відповідають регулярному виразу, незалежно від регістру символів в рядку. Для цього в регулярних виразах застосовується символ i

  • Властивість multiline дозволяє знайти підрядок, який відповідає регулярному виразу, в багаторядковому тексті. Для цього в регулярних виразах застосовується символ m

наприклад:

var initialText = "Hello World";
var exp = /world/;
var result = exp.test(initialText);   // false
console.log(result);

Тут збігу рядка з виразом немає, так як " World " відрізняється від " world " по регістру. В цьому випадку треба змінити регулярний вираз, додавши в нього властивість ignoreCase :

var exp = /world/i;

Ну і також ми можемо використовувати відразу кілька властивостей:

var exp = /world/ig;

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