JavaScript: Jak podmienić wielokrotne występowanie frazy w tekście?
Opublikowano: 10.06.2021 - tagi: JavaScript Tekst NodeJS
Podmiana tekstu w JavaScript jest dość prosta:
const someText = 'Lorem ipsum: {{message}}';
console.log(someText.replace('{{message}}', 'Hello!'));
Fraza {{message}}
zostanie podmieniona. Ale jeśli, w tekście występowałaby więcej niż jeden raz to zostanie zastąpiona tylko ta pierwsza:
const someText = 'Lorem ipsum: {{message}}. Lorem ipsum: {{message}}';
console.log(someText.replace('{{message}}', 'Hello!'));
Wynik:
Lorem ipsum: Hello!. Lorem ipsum: {{message}}
Jest kilka sposobów na podmianę tekstu:
Funkcja replaceAll
Możemy użyć replaceAll
const someText = 'Lorem ipsum: {{message}}. Lorem ipsum: {{message}}';
console.log(someText.replaceAll('{{message}}', 'Hello!'));
Inny sposób
Jakiś czas temu miałem ten problem w NodeJS, ale tam replaceAll nie była obsługiwana. Można to obejść na przykład tak:
const replaceAll = (text, phrase, value) => text.split(phrase).join(value);
const someText = 'Lorem ipsum: {{message}}. Lorem ipsum: {{message}}';
console.log(replaceAll(someText, '{{message}}', 'Hello!'));