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
Lepaskan: 2025-01-24 09:16:13
asal
515 orang telah melayarinya

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;
    }
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan