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