replace / replaceAll în JavaScript

Șiruri de caractere Toate browserele (replaceAll: ES2021)

Înlocuiește o bucată de text cu alta. replace schimbă prima apariție, replaceAll pe toate.

Sintaxă
sir.replace(cauta, inlocuire)
sir.replaceAll(cauta, inlocuire)

Ce face replace / replaceAll

replace caută un text și îl înlocuiește. Dacă primește un text simplu, schimbă doar prima apariție. replaceAll schimbă toate aparițiile.

Poți căuta și cu o expresie regulată. Cu opțiunea g (global) sunt înlocuite toate potrivirile, iar cu i căutarea ignoră literele mari și mici.

Parametri

Parametru Descriere
cauta Textul sau expresia regulată căutată.
inlocuire Textul nou sau o funcție care primește potrivirea și returnează textul nou.

Ce returnează

Un șir nou. Originalul rămâne neschimbat.

Exemple

Exemplul 1: Prima apariție sau toate

const text = "mere, pere, mere";

console.log(text.replace("mere", "prune"));
console.log(text.replaceAll("mere", "prune"));

Rezultat

prune, pere, mere
prune, pere, prune

Exemplul 2: Slug pentru o adresă URL

const titlu = "Cum Instalezi WordPress Local";
const slug = titlu.toLowerCase().replace(/\s+/g, "-");

console.log(slug);

Rezultat

cum-instalezi-wordpress-local

Exemplul 3: Înlocuire calculată cu o funcție

const pret = "Preț: 100 lei, livrare: 15 lei";
const cuTva = pret.replace(/\d+/g, (numar) => Math.round(numar * 1.21));

console.log(cuTva);

Rezultat

Preț: 121 lei, livrare: 18 lei

Greșeli frecvente

  • Te aștepți ca replace("a", "b") să schimbe toate literele a. Schimbă doar prima. Folosește replaceAll sau /a/g.
  • Apelezi text.replace(...) și nu salvezi rezultatul. Șirurile nu se modifică pe loc: scrie text = text.replace(...).

Comenzi înrudite

  • toUpperCase / toLowerCase: Transformă tot textul în litere mari sau în litere mici.
  • split: Împarte un text în bucăți după un separator și returnează un tablou.
  • trim: Șterge spațiile (și rândurile noi) de la începutul și sfârșitul unui text.