RegExp flags
Флаги меняют поведение поиска: g — все совпадения, i — без учёта регистра и другие.
Доступно с: ES3
Синтаксис
/pattern/gimsuydПримеры
Флаг g — все совпадения, без него — только первое:
console.log('a-b-c'.replace(/-/, '+'));
console.log('a-b-c'.replace(/-/g, '+'));Результат:
a+b-c
a+b+cФлаг i — без учёта регистра:
console.log(/hello/i.test('HELLO there'));Результат:
trueФлаг m — ^ и $ работают для каждой строки текста:
const text = 'one\ntwo\nthree';
console.log(text.match(/^\w+$/gm).join(','));Результат:
one,two,threeФлаг s — точка совпадает и с переводом строки:
console.log(/a.b/.test('a\nb'), /a.b/s.test('a\nb'));Результат:
false trueПримечания
Остальные флаги: u — правильная работа с Юникодом и эмодзи, y — поиск строго с позиции lastIndex, d — позиции групп в результате, v — расширенный режим Юникода. Флаги регулярного выражения возвращает свойство regex.flags.
См. также
- RegExp — Регулярное выражение — шаблон для поиска и замены текста.
- String.prototype.matchAll — Возвращает все совпадения вместе с группами.
- String.prototype.replace — Заменяет первое совпадение (или все — с флагом g у регулярного выражения).
В учебнике
- Регулярные выражения — Регулярные выражения в JavaScript для начинающих: шаблоны, флаги, классы символов, проверка, поиск и замена текста.