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:
let str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Tomēr šim uzdevumam ir daudz ātrāk strādājošs risinājums:
let str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Šāds kods pārbauda, vai virknē ir
apakšvirkne '33'.
Veiciet optimizāciju:
let str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Šāds kods pārbauda, vai virkne
beidzas ar '.html'.
Veiciet optimizāciju:
let str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Šāds kods apgriež galējos atstarpes. Veiciet optimizāciju:
let str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);