1. Početna
  2. Tehnologija & Gadgeti
  3. Kako napisati regularni izraz za e-mail adresu u Javi?

Kako napisati regularni izraz za e-mail adresu u Javi?

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.

Was this article helpful?

Related Articles

Leave a Comment