Rumah >pembangunan bahagian belakang >C++ >Adakah Pengesahan E-mel Ungkapan Biasa Boleh Dipercayai, atau Perlukah Kami Menggunakan Pendekatan Berbeza?

Adakah Pengesahan E-mel Ungkapan Biasa Boleh Dipercayai, atau Perlukah Kami Menggunakan Pendekatan Berbeza?

Linda Hamilton
Linda Hamiltonasal
2025-01-24 09:16:13483semak imbas

Is Regular Expression Email Validation Reliable, or Should We Use a Different Approach?

Pengesahan E-mel Ungkapan Biasa dan Masalahnya

Walaupun penggunaan ungkapan biasa yang meluas untuk mengesahkan alamat e-mel, ungkapan biasa seperti yang disediakan menimbulkan kebimbangan tentang keberkesanannya. Regex yang dimaksudkan bertujuan untuk menangkap:

  • Domain peringkat pertama (huruf, nombor, noktah, sempang)
  • Domain peringkat kedua (huruf, sempang)
  • Domain peringkat lain (tempoh, 2-3 huruf)

Walau bagaimanapun, terdapat batasan yang wujud untuk pendekatan ini:

1. TLD yang tiada tandingan:

TLD yang panjang, seperti .muzium, tidak dipadankan dengan regex. Selain itu, ia gagal mengesahkan alamat e-mel dengan TLD tertentu yang kurang biasa.

2. Kekurangan Kekukuhan:

Reex mungkin tidak mengendalikan kes tepi dengan berkesan. Sebagai contoh, alamat e-mel yang mengandungi ruang atau TLD yang tiada boleh melalui pengesahan.

Pendekatan Alternatif

Daripada bergantung pada ungkapan biasa, pertimbangkan untuk menggunakan System.Net. Kelas Mail.MailAddress untuk mengesahkan alamat e-mel. Microsoft mengesyorkan pendekatan ini kerana ketepatannya yang lebih tinggi:

public bool IsValid(string emailaddress)
{
    try
    {
        MailAddress m = new MailAddress(emailaddress);

        return true;
    }
    catch (FormatException)
    {
        return false;
    }
}

Kaedah ini memintas keperluan untuk corak regex yang kompleks, mengurangkan kemungkinan ralat dan meningkatkan kebolehpercayaan pengesahan e-mel.

Atas ialah kandungan terperinci Adakah Pengesahan E-mel Ungkapan Biasa Boleh Dipercayai, atau Perlukah Kami Menggunakan Pendekatan Berbeza?. 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