Optymalizacja wykorzystania wyrażeń regularnych w JavaScript
Wyrażenia regularne są bardzo ciężkie i stosunkowo wolno działające. Gdy istnieje alternatywne rozwiązanie, wskazane jest korzystanie właśnie z niego.
Spójrzmy na przykład. Załóżmy, że musimy sprawdzić, czy pewien ciąg znaków zaczyna się od wykrzyknika. Pewien programista rozwiązał to zadanie za pomocą wyrażenia regularnego:
let str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Jednakże, to zadanie ma znacznie szybciej działające rozwiązanie:
let str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Poniższy kod sprawdza obecność w ciągu znaków
podciągu '33'.
Wykonaj optymalizację:
let str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Poniższy kod sprawdza, czy ciąg znaków
kończy się na '.html'.
Wykonaj optymalizację:
let str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Poniższy kod przycina końcowe spacje. Wykonaj optymalizację:
let str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);