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:
javascriptlet str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Avšak takový úkol má mnohem rychleji pracující řešení:
javascriptlet str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Задание 1
Následující kód kontroluje přítomnost podřetězce
'33' v řetězci.
Proveďte optimalizaci:
javascriptlet str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Задание 2
Následující kód kontroluje, zda řetězec
končí na '.html'.
Proveďte optimalizaci:
javascriptlet str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Задание 3
Následující kód ořezává koncové mezery. Proveďte optimalizaci:
javascriptlet str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);