În web-ul globalizat de astăzi, presupunerea că un nume de utilizator sau un text conține doar caractere ASCII ([a-zA-Z]) este cauza principală pentru care formularele resping pe nedrept nume românești cu diacritice („Mihai Ștefan”) sau nume internaționale. Unicode Property Escapes (secvențele \p{...}) permit clasificarea caracterelor pe baza proprietăților oficiale din standardul Unicode.
Clasa clasică ASCII vs. Proprietăți Unicode \p{L}
// METODA VECHE (Eșuează pe diacritice românești!):
^[a-zA-Z\s]+$
// Testat pe "Bogdan Chișinău" -> EȘUEAZĂ din cauza lui 'ș' și 'ă'!
// METODA MODERNĂ CU PROPRIETĂȚI UNICODE:
^[\p{L}\s]+$ # \p{L} = Orice literă din orice alfabet din lume!
// Testat pe "Bogdan Chișinău" -> VALID 100%!
// Testat pe "René François" -> VALID 100%!
Categorii Majore de Proprietăți Unicode
| Proprietate | Nume Categorie | Ce Potrivește |
|---|---|---|
\p{L} (sau \p{Letter}) |
Litere | Orice literă (majusculă, minusculă, diacritică) din latină, chirilică, greacă, arabă, chineză etc. |
\p{Lu} |
Uppercase Letter | Doar litere majuscule (inclusiv Ș, Ț, Ă, Î, Â). |
\p{Ll} |
Lowercase Letter | Doar litere minuscule (inclusiv ș, ț, ă, î, â). |
\p{N} (sau \p{Number}) |
Numere | Orice caracter numeric (cifre arabe 0-9, cifre romane, fracții Unicode ½). |
\p{P} (sau \p{Punctuation}) |
Punctuație | Semne de punctuație globale (ghilimele, paranteze, virgule, puncte). |
\p{Sc} |
Currency Symbol | Simboluri monetare: $, €, £, ¥ etc. |
Filtrare după alfabet cu Script
// Potrivește exclusiv cuvinte scrise în alfabetul latin (inclusiv diacritice):
^\p{Script=Latin}+$
// Negarea proprietăților cu \P (majusculă):
\P{L} # Orice caracter care NU este o literă!
Întrebări & Exemple de Cod:
Proprietăți Unicode în RegEx (\p{Letter}, \p{Number}, \p{Emoji})Ai o nelămurire despre utilizarea comenzii
Proprietăți Unicode în RegEx (\p{Letter}, \p{Number}, \p{Emoji})sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.