Optimizarea utilizării expresiilor regulate în JavaScript

Expresiile regulate sunt un instrument foarte greu și relativ lent. Când există o soluție alternativă, este de preferat să o folosiți pe aceasta.

Să ne uităm la un exemplu. Să presupunem că trebuie să verificăm dacă un anumit șir începe cu un semn de exclamare. Un programator a rezolvat această sarcină folosind o expresie regulată:

javascriptlet str = '!123';

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

Cu toate acestea, această sarcină are o soluție mult mai rapidă:

javascriptlet str = '!123';

if (str[0] == '!') {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Următorul cod verifică prezența în șir a subșirului '33'. Efectuați optimizarea:

javascriptlet str = '123345';

if (/33/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 2

Următorul cod verifică dacă șirul se termină cu '.html'. Efectuați optimizarea:

javascriptlet str = 'index.html';

if (/\.html$/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

Următorul cod taie spațiile de la capăt. Efectuați optimizarea:

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