JavaScriptNapisy

String.prototype.replace()

Zwraca nowy napis, w którym pierwsze dopasowanie wzorca (albo wszystkie, przy fladze g) zamieniono na inny tekst.

Zwraca
Nowy napis po zamianie. Jeśli nic nie pasowało, napis bez zmian.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
JavaScript
const message = 'Witaj w kursie HTML. HTML jest prosty!'

console.log(message.replace('HTML', 'CSS'))
console.log(message.replace(/HTML/g, 'CSS'))
console.log(message)
Konsola
Witaj w kursie CSS. HTML jest prosty!
Witaj w kursie CSS. CSS jest prosty!
Witaj w kursie HTML. HTML jest prosty!

Definicja i zastosowanie

#

Metoda replace() szuka wzorca i zwraca nowy napis z podmienionym fragmentem. Gdy wzorcem jest zwykły tekst, zamieniane jest tylko pierwsze wystąpienie. Oryginalny napis pozostaje bez zmian, więc wynik trzeba zapisać do zmiennej.

Wzorcem może być wyrażenie regularne. Z flagą g zamienione zostaną wszystkie dopasowania, a z flagą i wielkość liter przestanie mieć znaczenie. W tekście zastępczym specjalne sekwencje wstawiają fragmenty dopasowania: $& to całe dopasowanie, a $1, $2 to kolejne grupy w nawiasach.

Zamiast tekstu możesz przekazać funkcję. Zostanie wywołana dla każdego dopasowania, a to, co zwróci, trafi do wyniku. Pozwala to np. przeliczać liczby w tekście albo zamieniać słowa na podstawie słownika.

Składnia

#
Składnia
string.replace(pattern, replacement)

Parametry

#
  • pattern

    string | RegExp

    Tekst lub wyrażenie regularne do znalezienia. Tekst zamienia tylko pierwsze wystąpienie, a wyrażenie z flagą g wszystkie.
  • replacement

    string | function

    Tekst wstawiany w miejsce dopasowania (może zawierać $&, $1 itd.) albo funkcja, która dostaje dopasowanie i grupy, a zwraca tekst zastępczy.

Więcej przykładów

#
Grupy w tekście zastępczym
JavaScript
const date = '2026-09-28'
const polish = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3.$2.$1')

console.log(polish)
Konsola
28.09.2026
Funkcja jako zamiennik
JavaScript
const receipt = 'Kurs 100 zł, e-book 40 zł'
const halfPrice = receipt.replace(/(\d+) zł/g, (match, amount) => `${amount / 2} zł`)

console.log(halfPrice)
Konsola
Kurs 50 zł, e-book 20 zł
Wielkość liter bez znaczenia
JavaScript
const review = 'Świetny kurs! JAVASCRIPT i javascript to to samo.'

console.log(review.replace(/javascript/gi, 'JavaScript'))
Konsola
Świetny kurs! JavaScript i JavaScript to to samo.

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Aby zamienić wszystkie wystąpienia zwykłego tekstu, użyj replaceAll() albo wyrażenia z flagą g. Samo replace("a", "b") zmieni tylko pierwsze.
  • Znak $ w tekście zastępczym ma specjalne znaczenie. Dosłowny znak dolara zapiszesz jako $$ albo zwrócisz go z funkcji.
  • Budując wyrażenie regularne z tekstu użytkownika, pamiętaj o znakach specjalnych, takich jak ., * czy ?. Dla zwykłego tekstu bezpieczniejsze jest replaceAll() z napisem.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.