Як бачимо, те ж саме, хіба що для регекспа використаний метод search - він якраз працює з регулярними виразами, а для підрядка - indexOf.
Але це відповідність лише позірна. Дуже скоро ми усложним регулярні вирази, і тоді побачимо, що вони набагато могутніше.
Тут і далі в тексті використовується наступна колірна схема:
- регексп (регулярний вираз) - червоний
- рядок - синій
- результат - зелений
Регулярні вирази можуть мати прапори, які впливають на пошук.
i Якщо цей прапор є, то регексп шукає незалежно від регістру, тобто не розрізняє між А і а. g Якщо цей прапор є, то регексп шукає всі збіги, інакше - тільки перше. m Багаторядковий режим.
Найпростіший для розуміння з цих прапорів - безумовно, i.
Приклад його використання:
- З РЕГОМ / ЛЮ / виклик повернув -1. що означає «, не знайдено» (як і в indexOf),
- З РЕГОМ / ЛЮ / i виклик знайшов збіг на позиції 2, так як варто прапор i. а значить «лю» теж підходить.
Інші прапори ми розглянемо в наступних розділах.
- Регулярний вираз складається з шаблону і необов'язкових прапорів g. i і m.
- Пошук по регулярному виразу без прапорів і спец. символів, які ми вивчимо далі - це те ж саме, що і звичайний пошук підрядка в рядку. Але прапори і спец. символи, як ми побачимо далі, можуть зробити його набагато могутніше.
- Метод рядки str.search (regexp) повертає індекс, на якому знайдено збіг.