Ce face RegExp.hasMatch
hasMatch(text) returnează true dacă modelul se potrivește undeva în text. Pentru a verifica dacă tot textul respectă modelul (validare), pune ^ la început și $ la sfârșit: RegExp(r'^\d{4}$') acceptă doar exact patru cifre.
stringMatch(text) returnează direct textul primei potriviri, sau null dacă nu există. Este o scurtătură pentru firstMatch(text)?.group(0), utilă când nu ai nevoie de poziții sau grupuri.
Parametri
| Parametru | Descriere |
|---|---|
input |
Textul în care se caută. |
Ce returnează
hasMatch: un bool. stringMatch: un String?.
Exemple
Exemplul 1: Validarea unor câmpuri de formular
void main() {
final telefon = RegExp(r'^07\d{8}$');
final codPostal = RegExp(r'^\d{6}$');
final email = RegExp(r'^[\w.+-]+@[\w-]+\.[\w.]+$');
for (var t in ['0722123456', '0722 123 456', '021123456']) {
print('$t: ${telefon.hasMatch(t)}');
}
print(codPostal.hasMatch('700506'));
print(codPostal.hasMatch('Iași 700506'));
print(email.hasMatch('ana.pop@exemplu.ro'));
print(email.hasMatch('ana@'));
}
Rezultat
0722123456: true
0722 123 456: false
021123456: false
true
false
true
false
Exemplul 2: Extragerea primei valori cu stringMatch
void main() {
final pret = RegExp(r'\d+([.,]\d+)?');
print(pret.stringMatch('Total de plată: 149,90 lei'));
print(pret.stringMatch('Gratuit'));
final an = RegExp(r'\b(19|20)\d{2}\b');
print(an.stringMatch('Născută la Iași în 1998, absolventă în 2021'));
}
Rezultat
149,90
null
1998
Greșeli frecvente
- Validezi fără
^și$:RegExp(r'\d{6}').hasMatch('abc1234567')estetrue, pentru că șase cifre apar undeva în text.
Comenzi înrudite
RegExp: O expresie regulată: un model de text cu care cauți, verifici sau înlocuiești bucăți dintr-un text.RegExp.firstMatch: Caută prima potrivire a modelului în text și o returnează cu poziții și grupuri, sau null dacă nu există.String.contains: Verifică dacă textul conține o bucată (contains), începe cu ea (startsWith) sau se termină cu ea (endsWith).