Оптимизация использования регулярок в JavaScript
Регулярные выражения очень тяжелая и относительно медленно работающая штука. Когда есть альтернативное решение, желательно пользоваться именно им.
Давайте посмотрим на примере. Пусть нам нужно проверить, начинается ли некоторая строка на восклицательный знак. Некий программист решил эту задачу через регулярку:
javascriptlet str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Однако, такая задача имеет гораздо более быстро работающее решение:
javascriptlet str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Задание 1
Следующий код проверяет наличие в строке
подстроки '33'.
Выполните оптимизацию:
javascriptlet str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Задание 2
Следующий код проверяет, заканчивается ли
строка на '.html'.
Выполните оптимизацию:
javascriptlet str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Задание 3
Следующий код обрезает концевые пробелы. Выполните оптимизацию:
javascriptlet str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);