Оптимизация на използването на регулярни изрази в 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);