Regulāro izteiksmju optimizēšana JavaScript

Regulārās izteiksmes ir ļoti smags un salīdzinoši lēni strādājošs rīks. Kad ir alternatīvs risinājums, vēlams izmantot tieši to.

Apskatīsim piemēru. Pieņemsim, ka mums ir jāpārbauda, vai kāda virkne sākas ar izsaukuma zīmi. Kāds programmētājs atrisināja šo uzdevumu, izmantojot regulāro izteiksmi:

javascriptlet str = '!123';

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

Tomēr šim uzdevumam ir daudz ātrāk strādājošs risinājums:

javascriptlet str = '!123';

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

Šāds kods pārbauda, vai virknē ir apakšvirkne '33'. Veiciet optimizāciju:

javascriptlet str = '123345';

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

Šāds kods pārbauda, vai virkne beidzas ar '.html'. Veiciet optimizāciju:

javascriptlet str = 'index.html';

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

Šāds kods apgriež galējos atstarpes. Veiciet optimizāciju:

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