Masalah dengan Pengesahan E-mel Regex Java
Dalam percubaan untuk mengesahkan alamat e-mel menggunakan ungkapan biasa, pengguna Java telah menghadapi masalah di mana pengesahan gagal walaupun untuk alamat e-mel yang dibentuk dengan baik. Walaupun fakta bahawa regex sepadan dengan alamat e-mel apabila digunakan dalam fungsi "cari dan ganti" dalam Eclipse, ia gagal apabila digunakan dengan kelas Corak dan Matcher Java.
regex yang dimaksudkan ialah:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
Pengguna telah menggunakan kod ini dalam Java:
Pattern p = Pattern.compile("\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"); Matcher m = p.matcher("[email protected]"); if (m.find()) System.out.println("Correct!");
Walau bagaimanapun, tanpa mengira alamat e-mel yang sah atau tidak sah, pengesahan regex gagal.
Penyelesaian Berpotensi
Penyelesaian yang dicadangkan ialah menggunakan kod Java berikut, yang menggunakan regex yang serupa:
public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^}[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); public static boolean validate(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.matches(); }
Kod ini telah dilaporkan untuk mengesahkan alamat e-mel dengan pasti.
Atas ialah kandungan terperinci Mengapa Pengesahan E-mel Java Regex Saya Gagal Walaupun Bekerja dalam Cari dan Ganti Eclipse?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!