Оптимизация использования регулярок в JavaScript

Регулярные выражения очень тяжелая и относительно медленно работающая штука. Когда есть альтернативное решение, желательно пользоваться именно им.

Давайте посмотрим на примере. Пусть нам нужно проверить, начинается ли некоторая строка на восклицательный знак. Некий программист решил эту задачу через регулярку:

let str = '!123'; if (/^!/.test(str)) { console.log('+++'); } else { console.log('---'); }

Однако, такая задача имеет гораздо более быстро работающее решение:

let str = '!123'; if (str[0] == '!') { console.log('+++'); } else { console.log('---'); }

Следующий код проверяет наличие в строке подстроки '33'. Выполните оптимизацию:

let str = '123345'; if (/33/.test(str)) { console.log('+++'); } else { console.log('---'); }

Следующий код проверяет, заканчивается ли строка на '.html'. Выполните оптимизацию:

let str = 'index.html'; if (/\.html$/.test(str)) { console.log('+++'); } else { console.log('---'); }

Следующий код обрезает концевые пробелы. Выполните оптимизацию:

let str = ' text '; let res = str.replace(/^\s+|\s+$/g, ''); console.log(res);
enru