Optimalizace používání regulárních výrazů v JavaScriptu
Regulární výrazy jsou velmi náročná a relativně pomalu pracující věc. Když existuje alternativní řešení, je vhodné používat právě to.
Podívejme se na příklad. Předpokládejme, že potřebujeme zkontrolovat, zda nějaký řetězec začíná na vykřičník. Nějaký programátor vyřešil tento úkol pomocí regulárního výrazu:
let str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Avšak takový úkol má mnohem rychleji pracující řešení:
let str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Následující kód kontroluje přítomnost podřetězce
'33' v řetězci.
Proveďte optimalizaci:
let str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Následující kód kontroluje, zda řetězec
končí na '.html'.
Proveďte optimalizaci:
let str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Následující kód ořezává koncové mezery. Proveďte optimalizaci:
let str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);