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