U današnje vrijeme, e-mail adresa je nezaobilazna komponenta našeg svakodnevnog života. Bilo da komuniciramo s prijateljima, obitelji ili poslovnim partnerima, e-mail je često naš glavni način komunikacije. Stoga je važno provjeriti valjanost e-mail adresa kada ih prikupljamo. U ovom članku ćemo se fokusirati na pisanje regularnog izraza (regex) u Javi koji će nam pomoći u provjeri ispravnosti e-mail adresa.
Regularni izrazi su moćan alat za pretraživanje i manipulaciju teksta. U Javi, regularni izrazi se koriste uz pomoć java.util.regex
paketa. Ključne klase koje ćemo koristiti su Pattern
i Matcher
. Prvo, definirat ćemo regularni izraz koji će odgovarati ispravnim e-mail adresama.
Jednostavan regularni izraz za e-mail adresu može izgledati ovako:
String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:.[a-zA-Z0-9_+&*-]+)*@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*(.[a-zA-Z]{2,})$";
Ovaj izraz pokriva većinu standardnih e-mail formata. Objašnjenje ovog izraza je sljedeće:
^
označava početak stringa.[a-zA-Z0-9_+&*-]+
označava lokalni dio e-mail adrese, koji može sadržavati slova, brojeve i određene specijalne znakove.(?:.[a-zA-Z0-9_+&*-]+)*
omogućava prisutnost dodatnih dijelova koji su odvojeni točkom.@
je obavezan znak koji odvaja lokalni dio od domene.[a-zA-Z0-9-]+
označava naziv domene, koji može sadržavati slova, brojeve i crtice.(?:.[a-zA-Z0-9-]+)*
omogućava prisutnost dodatnih razina domena.(.[a-zA-Z]{2,})
osigurava da se završava s točkom i barem dva slova, što predstavlja TLD (top-level domain).$
označava kraj stringa.
Nakon što smo definirali naš regularni izraz, sljedeći korak je implementacija provjere e-mail adrese. Možemo to učiniti pomoću klase Pattern
i Matcher
. Evo jednostavnog primjera:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailValidator {
private static final String EMAIL_REGEX = "^[a-zA-Z0-9_+&*-]+(?:.[a-zA-Z0-9_+&*-]+)*@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*(.[a-zA-Z]{2,})$";
public static boolean isValidEmail(String email) {
Pattern pattern = Pattern.compile(EMAIL_REGEX);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
}
U ovoj klasi, definiramo metodu isValidEmail
koja prima e-mail adresu kao string i vraća true
ili false
ovisno o tome je li e-mail adresa valjana. Koristimo Pattern.compile
za kreiranje uzorka i matcher.matches()
za provjeru da li e-mail adresa odgovara našem regularnom izrazu.
Sada možemo testirati našu funkciju:
public class Main {
public static void main(String[] args) {
System.out.println(EmailValidator.isValidEmail("[email protected]")); // true
System.out.println(EmailValidator.isValidEmail("invalid-email")); // false
}
}
Ovaj primjer pokazuje jednostavnu provjeru e-mail adresa. Imajte na umu da regularni izraz koji smo koristili može pokriti većinu slučajeva, ali uvijek je dobro testirati s raznim formatima e-mail adresa kako bismo osigurali da radi ispravno.
U zaključku, korištenje regularnih izraza za provjeru e-mail adresa u Javi je jednostavno i učinkovito. Ovaj pristup može pomoći u smanjenju grešaka prilikom prikupljanja podataka od korisnika. Zbog široke upotrebe e-mail adresa, implementacija ovakvih provjera je ključna za poboljšanje korisničkog iskustva i kvalitete podataka.