String.prototype.match în JavaScript

Șiruri de caractere Toate browserele, Node.js

Caută într-un text potriviri cu o expresie regulată și le returnează.

Sintaxă
sir.match(expresieRegulata)

Ce face String.prototype.match

Fără indicatorul g, match returnează prima potrivire, cu grupurile ei și proprietățile index și groups (la fel ca exec). Cu g, returnează un tablou cu toate textele potrivite, fără grupuri.

Dacă nu găsește nimic, returnează null, nu un tablou gol.

Parametri

Parametru Descriere
expresieRegulata Un obiect RegExp (un text simplu este transformat în expresie regulată).

Ce returnează

Un tablou cu potrivirile sau null.

Exemple

Exemplul 1: Toate numerele dintr-un text

const text = "3 kg mere, 12 ouă și 2 pâini";

console.log(text.match(/\d+/g));
console.log(text.match(/\d+/g).map(Number));

Rezultat

[ '3', '12', '2' ]
[ 3, 12, 2 ]

Exemplul 2: Prima potrivire, cu grupuri cu nume

const data = "Termen: 25.12.2026";
const rezultat = data.match(/(?<zi>\d{2})\.(?<luna>\d{2})\.(?<an>\d{4})/);

console.log(rezultat[0]);
console.log(rezultat.index);
console.log(rezultat.groups.an, rezultat.groups.luna, rezultat.groups.zi);

Rezultat

25.12.2026
8
2026 12 25

Exemplul 3: Nicio potrivire

const potriviri = "fără cifre".match(/\d+/g);

console.log(potriviri);
console.log((potriviri ?? []).length);

Rezultat

null
0

Greșeli frecvente

  • Citești .length direct din rezultat. Când nu există potriviri, match dă null și primești TypeError. Scrie (sir.match(re) ?? []).length.
  • Ai nevoie de grupuri pentru toate potrivirile și folosești match cu g, care le pierde. Folosește matchAll.

Comenzi înrudite

  • String.prototype.matchAll: Returnează toate potrivirile unei expresii regulate, fiecare cu grupurile și poziția ei.
  • RegExp.prototype.exec: Caută următoarea potrivire a unei expresii regulate și o returnează cu grupuri și poziție.
  • RegExp.prototype.test: Verifică dacă un text se potrivește cu o expresie regulată și returnează true sau false.