Adakah Regex Cukup untuk Pengesahan E-mel yang Tepat?

Susan Sarandon
Lepaskan: 2024-11-14 22:46:02
asal
584 orang telah melayarinya

Is Regex Enough for Accurate Email Validation?

Kesalahan Regex dalam Pengesahan E-mel

Mengesahkan alamat e-mel menggunakan ungkapan biasa boleh menjadi tugas yang sukar, terutamanya untuk alamat subdomain. Untuk menangani cabaran ini, mari kita terokai batasan bergantung semata-mata pada regex.

Batasan Pengesahan Regex

Semasa mengesahkan ketepatan sintaksis alamat e-mel (mis., kehadiran daripada @ dan .), regex gagal mengambil kira kesilapan silap dan memastikan bahawa alamat itu benar-benar wujud. Menyelesaikan isu ini memerlukan semakan yang lebih meluas, iaitu:

  1. Salah Taip: Malah alamat e-mel yang sah dari segi sintaksis boleh disalah taip. Pengesahan manual diperlukan untuk menolak ralat tersebut.
  2. Pengesahan Kewujudan: Menghubungi pelayan SMTP melalui pakej validate_email boleh mengesahkan kewujudan alamat e-mel. Walau bagaimanapun, pendekatan ini tidak menjamin bahawa alamat adalah milik penerima yang dimaksudkan.

Semakan Mudah Disyorkan

Memandangkan pengehadan pengesahan regex, semakan asas yang mengenal pasti ralat pengguna biasa selalunya mencukupi:

[^@]+@[^@]+\.[^@]+
Salin selepas log masuk

Reeks ini mengesahkan kehadiran tepat satu @ simbol dan sekurang-kurangnya satu . selepas @.

Menggunakan Ungkapan Biasa dalam Kod

Untuk memasukkan regex di atas ke dalam kod, gunakan modul semula dalam Python:

import re

if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
    # Handle invalid email address
Salin selepas log masuk

Perhatikan penggunaan rentetan mentah Python yang diawali dengan r untuk mengelakkan aksara terlepas dua kali. Untuk regeks kompleks, pertimbangkan untuk menyusunnya dahulu:

EMAIL_REGEX = re.compile(r"[^@]+@[^@]+\.[^@]+")

if not EMAIL_REGEX.match(email):
    # Handle invalid email address
Salin selepas log masuk

Atas ialah kandungan terperinci Adakah Regex Cukup untuk Pengesahan E-mel yang Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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