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ă:
let str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Cu toate acestea, această sarcină are o soluție mult mai rapidă:
let str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Următorul cod verifică prezența în șir a
subșirului '33'.
Efectuați optimizarea:
let str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Următorul cod verifică dacă șirul se termină
cu '.html'.
Efectuați optimizarea:
let str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Următorul cod taie spațiile de la capăt. Efectuați optimizarea:
let str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);