Java Script підручник | Патерни і прапори регулярних виразів
- Патерни і прапори регулярних виразів Доброго дня! Цією статтею я починаю цикл уроків за регулярними...
- Використання регулярного виразу
- Прапори.
- підсумки
Патерни і прапори регулярних виразів
Доброго дня! Цією статтею я починаю цикл уроків за регулярними виразами. Регулярні вирази - представляють собою потужний засіб для пошуку і заміни в рядку.
У мові програмування JavaScript регулярні вирази представлені об'єктом RegExp і вбудовані в методи рядків. За допомогою регулярних вирази можна знаходити і замінювати різні фрагменти тексту.
Що таке регулярний вираз
Регулярний вираз, як правило складається з шаблону і необов'язкових прапорів.
Давайте рассмртім як створюються регулярні вирази:
var reg = new RegExp (/ \ d /, "gim");
Але є й інша форма запису (це шаблон всередині слешів «/»):
var reg = / [az] /; // без прапорів var reg = / [az] / gmi; // з прапорами gmi (про них їх далі)
Слеші «/» говорять движку JavaScript про те, що це регулярний вираз. Це як лапки при створення рядків .
Використання регулярного виразу
Основа основ регулярного виразу - це патерн або шаблон. Це власне рядок, яку можна розширити символами, для того щоб пошук був набагато могутніше.
Давайте розглянемо найпростіший випадок, без прапорів і спеціальних символів:
var str1 = "Я люблю Регулярні вирази!"; // будемо шукати в цьому рядку var reg = / лю /; alert (str.search (reg)); // 2
Для порівняння ось звичайний пошук:
var str1 = "Я люблю регулярні вирази!"; var substr1 = "лю"; alert (str.indexOf (substr1)); // 2
Як бачите, в принципі все те ж саме, хіба тільки що для регулярки був використаний метод search - а ось він якраз працює з регулярними виразами, а для пошуку підрядка - indexOf .
Але це так тільки здається. Трохи пізніше ми усложним приклади з регулярними виразами, і тоді відразу побачимо, що регулярки набагато могутніше.
Прапори.
У регулярних виразах можуть зустрічатися наступні прапори, що впливають на пошук.
В JavaScript їх всього три:
iЯкщо цей прапор встановлений, то регулярний вираз здійснює регістронезавісімий пошук, тобто немає відмінностей між великими і маленькими літерами А і а. g Якщо цей прапор встановлений, то регулярний вираз буде шукати всі збіги, якщо немає - тільки перше. m Якщо цей прапор встановлений, то пошук здійснюється в багаторядковому тексті.
Самий звичайно простий з цих прапорів - це i.
Ось приклад його використання:
var str1 = "Я люблю регулярні вирази!"; // шукаємо в цьому рядку alert (str.search (/ ЛЮ /)); // -1 alert (str.search (/ ЛЮ / i)); // 2
- З шаблном / ЛЮ / виклик нам повернув -1, що буде означати що «, не знайдено» (як і власне в indexOf),
- З шаблоном / ЛЮ / i виклик знайшов збіг на позиції 2, тому що встановлений прапор i, а це значить «лю» теж підходить.
Інші прапори будуть розглянуті в наступних уроках.
підсумки
- Регулярні вирази складаються з паттерна і прапорів g, i і m.
- Пошук по регулярному виразу без прапорів і спец. символів, які ми вивчимо далі - це те ж саме, що і звичайний пошук підрядка в рядку. Але прапори і спец. символи, як ми побачимо далі, можуть зробити його набагато могутніше.
- Метод рядки str.search (regexp) повертає індекс, на якому знайдено збіг.
Дивіться видеоурок за регулярними виразами.
Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту і натисніть Ctrl + Enter.