webroad.online
  1. 1Web
  2. 2HTML
  3. 3CSS
  4. 4JavaScript
  5. 5TypeScript
  6. 6Git
  7. 7Unelte
  8. 8React
  9. 9State management
  10. 10Next.js
  11. 11Formulare
  12. 12Date și backend
  13. 13SEO
  14. 14Tailwind CSS
  15. 15Animații
  16. 16Testare
  17. 17Arhitectură
JavaScript · Lecția 6 din 17

Expresii regulate

Piese, cuantificatori, grupuri, flag-uri și când să nu folosești regex.

Actualizat

Ce este o expresie regulată

O expresie regulată (regex) e un tipar care descrie cum arată un text: „începe cu o literă mare”, „conține un număr de telefon”, „e un cod poștal de 6 cifre”. Cu ea poți verifica, căuta, extrage și înlocui bucăți de text.

/^\d{6}$/.test('400001')            // true — exact 6 cifre
'Tel: 0722 123 456'.match(/\d+/g)    // ['0722', '123', '456']
'a-b-c'.replace(/-/g, ' ')           // 'a b c'

Arată criptic la început, dar sunt doar câteva piese combinate.

Piesele de bază

Piesă Potrivește Exemplu
abc exact textul /cat/
. orice caracter (în afară de linie nouă) /c.t/ → cat, cut
\d / \w / \s cifră / literă-cifră-underscore / spațiu /\d\d/
[abc] / [a-z] / [^0-9] unul din set / interval / orice în afară de /[aeiou]/
^ / $ începutul / sfârșitul textului /^Salut/
\b granița unui cuvânt /\bvar\b/
\. \? \( caracterele speciale, ca text /\.js$/

Cuantificatori — de câte ori

Cuantificator Înseamnă
? 0 sau 1 (opțional)
* 0 sau mai multe
+ 1 sau mai multe
{3} / {2,4} / {2,} exact 3 / între 2 și 4 / minim 2

Implicit sunt lacomi (iau cât pot de mult); cu ? după ei devin leneși: /<.+?>/ oprește la primul >.

Grupuri

const m = '2026-10-08'.match(/(\d{4})-(\d{2})-(\d{2})/)
m[1] // '2026'

const { groups } = '2026-10-08'.match(/(?<year>\d{4})-(?<month>\d{2})/)
groups.year // '2026' — grupuri cu nume, mai lizibile

/(?:ab)+/    // grup fără captură — doar pentru a aplica + pe „ab”
/cat|dog/    // alternativă

Flag-uri

Flag Efect
g toate potrivirile, nu doar prima
i fără diferență de majuscule
m ^ și $ pe fiecare linie
u Unicode corect (diacritice, emoji) — folosește-l implicit

Metodele — ce folosești când

Vrei Metodă
da / nu regex.test(str)
prima potrivire + grupuri str.match(regex) (fără g)
toate potrivirile cu grupuri [...str.matchAll(/.../g)]
înlocuire str.replace(regex, 'x') / replaceAll / cu funcție: replace(re, m => ...)
împărțire str.split(/\s*,\s*/)

Când nu folosești regex

  • Email complet corect — imposibil practic; folosește type="email" / z.email().
  • HTML / JSON — folosește un parser (DOMParser, JSON.parse).
  • URL-uri — new URL().
  • Regex-uri imense pe care nimeni nu le mai poate citi — mai bine câteva verificări simple.

Pe scurt

  • Regex = tipar de text: piese (\d, [a-z], ^ $) + cuantificatori (+ * ? {n}) + grupuri.
  • test pentru da/nu, matchAll pentru extragere, replace pentru înlocuire; flag-uri g i u.
  • Pentru email, HTML, URL folosește unelte dedicate.

Surse oficiale

Exerciții

Ți-a fost utilă pagina?

Un click — fără cont.