Rumah >Java >javaTutorial >Bagaimanakah Java Regex Boleh Mengesahkan Alamat E-mel dengan Berkesan?

Bagaimanakah Java Regex Boleh Mengesahkan Alamat E-mel dengan Berkesan?

DDD
DDDasal
2024-12-02 16:01:16156semak imbas

How Can Java Regex Effectively Validate Email Addresses?

Pengesahan E-mel dengan Java Regex

Mengesahkan alamat e-mel menggunakan ungkapan biasa ialah pendekatan yang kurang disyorkan, tetapi untuk meneruskan kaedah ini, adalah penting untuk memahami potensi isu yang boleh dikemukakan.

Pertama, mari kita periksa yang disediakan regex:

b[A-Z0-9._%-] @[A-Z0-9.-] .[A-Z]{2,4}b

Di Jawa, kod berikut telah digunakan:

Pattern p = Pattern.compile("\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b");
Matcher m = p.matcher("[email protected]");

Walau bagaimanapun, regex gagal sepadan dengan alamat e-mel yang sah. Mari kita pertimbangkan kod dan regex untuk mengenal pasti punca yang berpotensi untuk kegagalan.

Ciri "cari dan ganti" dalam Eclipse menggunakan regex yang sama berkelakuan berbeza kerana ia mungkin tidak menggunakan algoritma padanan corak yang sama atau mungkin telah merawat rentetan input secara berbeza.

Untuk menyelesaikan isu ini, anda boleh mempertimbangkan untuk menggunakan pengesahan e-mel yang lebih halus regex:

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();
}

regex yang dikemas kini ini mengikut format yang lebih ketat untuk memastikan alamat e-mel yang sah dipadankan. Ia juga menggunakan corak tidak peka huruf besar-besaran untuk membenarkan variasi dalam sarung e-mel.

Atas ialah kandungan terperinci Bagaimanakah Java Regex Boleh Mengesahkan Alamat E-mel dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn