Статьи / Регулярные выражения


Ретроспективная проверка в javascript (?<=)

Как известно в javascript отсутствует ретроспективная проверка - это когда мы проверяем регулярное выражение не с начала, а с конца.

Её можно эмулировать:

var str = 'abc!';
str.
split("").reverse().join("").
match(/(?!([.,!?]+)).*/)[0].
split("").reverse().join(""); // [ "abc" ]


Мы разворачиваем строку и производим поиск с начала строки, затем разворачиваем полученный результат в обратную сторону. Таким образом направление поиска сохраняется и эмулирует ретроспективную проверку.