Optymalizacja wykorzystania wyrażeń regularnych w JavaScript

Wyrażenia regularne są bardzo ciężkie i stosunkowo wolno działające. Gdy istnieje alternatywne rozwiązanie, wskazane jest korzystanie właśnie z niego.

Spójrzmy na przykład. Załóżmy, że musimy sprawdzić, czy pewien ciąg znaków zaczyna się od wykrzyknika. Pewien programista rozwiązał to zadanie za pomocą wyrażenia regularnego:

javascriptlet str = '!123';

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

Jednakże, to zadanie ma znacznie szybciej działające rozwiązanie:

javascriptlet str = '!123';

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

Poniższy kod sprawdza obecność w ciągu znaków podciągu '33'. Wykonaj optymalizację:

javascriptlet str = '123345';

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

Poniższy kod sprawdza, czy ciąg znaków kończy się na '.html'. Wykonaj optymalizację:

javascriptlet str = 'index.html';

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

Poniższy kod przycina końcowe spacje. Wykonaj optymalizację:

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