CRM dan Platform DataPemasaran E-mel & Automasi

Cara Mengesahkan Alamat E-mel Dengan Ungkapan Biasa (Regex). Contoh HTML5, PHP, C#, Python dan Kod Java.

Hampir setiap bahasa pengaturcaraan menyokong ungkapan biasa pada masa kini. Walaupun sesetengah pembangun tidak menyukainya, mereka benar-benar merupakan amalan terbaik kerana mereka biasanya melaksanakan fungsi seperti pengesahan dengan sangat pantas dengan sumber pelayan yang lebih sedikit. Alamat e-mel ialah contoh yang sempurna… di mana ia boleh disemak dengan mudah untuk memastikan ia diformatkan dengan betul.

Perlu diingat bahawa pengesahan tidak pengesahan. Pengesahan hanya bermaksud bahawa data yang diluluskan mengikut format standard yang dibina dengan betul. Beberapa perkara menarik tentang alamat e-mel yang boleh terlepas selepas pengesahan.

Apakah Alamat E-mel?

Alamat e-mel, seperti yang ditakrifkan oleh Format Mesej Internet (RFC 5322), terdiri daripada dua bahagian utama: bahagian tempatan dan bahagian domain. Bahagian tempatan datang sebelum @ simbol dan bahagian domain datang selepas. Berikut ialah contoh alamat e-mel: example@example.com, Di mana example ialah bahagian tempatan dan example.com ialah bahagian domain.

  • Tempatan – Bahagian setempat alamat e-mel mungkin mengandungi gabungan aksara alfanumerik, noktah, sempang, tanda tambah dan garis bawah. Ia biasanya digunakan untuk mengenal pasti peti mel atau akaun tertentu pada pelayan.
  • domain – Bahagian domain alamat e-mel terdiri daripada nama domain dan domain peringkat atasnya (TLD). Nama domain ialah rentetan aksara yang mengenal pasti pelayan yang mengehos akaun e-mel. TLD menentukan jenis entiti yang bertanggungjawab untuk nama domain, seperti kod negara (cth .uk) atau domain peringkat atas generik (cth .com, .org).

Walaupun ini adalah struktur asas alamat e-mel, peraturan untuk perkara yang membentuk alamat e-mel yang sah adalah rumit.

Berapa Lama Alamat E-mel Boleh?

Saya terpaksa membuat penggalian hari ini untuk mencarinya, tetapi adakah anda tahu berapa lama alamat e-mel yang sah? Ia sebenarnya dipecah menjadi beberapa bahagian ... Local@Domain.com.

  1. Setempat boleh terdiri daripada 1 hingga 64 aksara.
  2. Domain boleh terdiri daripada 1 hingga 255 aksara.

Ini bermakna - secara teknikal - ini boleh menjadi alamat e-mel yang sah:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Cuba pasangkannya pada kad perniagaan! Ironinya, kebanyakan medan alamat e-mel dihadkan kepada 100 aksara di web… yang secara teknikalnya tidak betul. Beberapa ungkapan biasa lain yang digunakan untuk mengesahkan alamat e-mel juga mencari domain peringkat atas 3 digit, seperti .com; walau bagaimanapun, tiada had untuk panjang domain peringkat atasan (contohnya. Martech Zone mempunyai 4 digit – .zon).

Ekspresi Biasa

RegEx ialah kaedah yang sempurna untuk menguji alamat e-mel kerana struktur programnya. Ungkapan biasa digunakan secara meluas dalam bahasa pengaturcaraan dan editor teks dan sering disepadukan ke dalam perpustakaan atau rangka kerja pemprosesan teks. Mereka disokong oleh banyak bahasa pengaturcaraan, termasuk Python, Java, C#, dan JavaScript, antara lain.

Penyeragaman alamat e-mel adalah jauh lebih kompleks daripada yang anda sedar. Apabila ditulis kepada standard, berikut ialah ungkapan biasa yang sebenar untuk alamat e-mel, kredit kepada Regexr:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

Corak ungkapan biasa ini sepadan dengan format asas alamat e-mel, termasuk aksara abjad angka, noktah, sempang, tanda tambah dan garis bawah dalam nama pengguna, diikuti dengan @ simbol, diikuti dengan nama domain. Adalah penting untuk ambil perhatian bahawa corak ini hanya akan menyemak format alamat e-mel dan bukan yang sebenar kewujudan daripada alamat e-mel.

HTML5 Termasuk Pengesahan Struktur E-mel

Cara paling mudah untuk memastikan e-mel adalah sah mengikut standard adalah dengan menggunakan medan input e-mel HTML5:

<input type='email' name='email' placeholder='name@domain.com' />

Namun, ada kalanya aplikasi web anda masih mahu mengesahkan alamat e-mel dalam penyemak imbas apabila dimasukkan dan apabila diserahkan kepada pelayan anda.

Regex Untuk Alamat E-mel yang Betul dalam PHP

Sebilangan kecil orang menyedarinya, tetapi PHP kini mempunyai standard RFC yang dibina ke dalamnya fungsi pengesahan penapis.

if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
    // Valid
}
else {
    // Not Valid
}

Regex Untuk Alamat E-mel yang Betul dalam C#

Berikut ialah pengesahan asas alamat e-mel dalam C#

using System;
using System.Text.RegularExpressions;

public class EmailValidator
{
    public static bool IsValidEmail(string email)
    {
        string pattern = @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";
        return Regex.IsMatch(email, pattern);
    }
}

Penggunaan praktikal kaedah ini:

string email = "example@example.com";
if (EmailValidator.IsValidEmail(email))
{
    Console.WriteLine(email + " is a valid email address.");
}
else
{
    Console.WriteLine(email + " is not a valid email address.");
}

Regex Untuk Alamat E-mel yang Betul di Java

Berikut ialah pengesahan asas alamat e-mel dalam Java

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailValidator {
    private 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 isValidEmail(String email) {
        Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(email);
        return matcher.find();
    }
}

Penggunaan praktikal kaedah ini:

String email = "example@example.com";
if (EmailValidator.isValidEmail(email)) {
    System.out.println(email + " is a valid email address.");
} else {
    System.out.println(email + " is not a valid email address.");
}

Regex Untuk Alamat E-mel yang Betul dalam Python

Berikut ialah pengesahan asas alamat e-mel dalam Python:

import re

def is_valid_email(email):
    pattern = re.compile(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')
    return True if pattern.match(email) else False

Penggunaan praktikal kaedah ini:

email = "example@example.com"
if is_valid_email(email):
    print(f"{email} is a valid email address.")
else:
    print(f"{email} is not a valid email address.")

Regex Untuk Alamat E-mel yang Betul dalam JavaScript

Anda tidak perlu mempunyai standard yang terlalu kompleks untuk menyemak struktur alamat e-mel. Berikut ialah cara mudah menggunakan JavaScript.

function validateEmail(email) 
{
    var re = /\\S+@\\S+/;
    return re.test(email);
}

Sudah tentu, itu bukan standard RFC, jadi anda mungkin ingin mengesahkan setiap bahagian data untuk memastikan ia sah. Ungkapan biasa ini akan mematuhi kira-kira 99.9% alamat e-mel di luar sana. Ia tidak sepenuhnya mengikut standard, tetapi ia berguna untuk hampir mana-mana projek.

function validateEmail(email) 
{
  var re = /^(?:[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/;

  return re.test(email);
}

Kredit untuk beberapa contoh ini diberikan kepada HTML.form.guide.

Douglas Karr

Douglas Karr ialah CMO daripada OpenINSIGHTS dan pengasas Martech Zone. Douglas telah membantu berpuluh-puluh syarikat permulaan MarTech yang berjaya, telah membantu dalam usaha wajar lebih $5 bilion dalam pemerolehan dan pelaburan Martech, dan terus membantu syarikat dalam melaksanakan dan mengautomasikan strategi jualan dan pemasaran mereka. Douglas ialah transformasi digital yang diiktiraf di peringkat antarabangsa dan pakar serta penceramah MarTech. Douglas juga merupakan pengarang buku panduan Dummie dan buku kepimpinan perniagaan yang diterbitkan.

Artikel yang berkaitan

Kembali ke atas butang
Tutup

Adblock Dikesan

Martech Zone mampu memberikan anda kandungan ini tanpa sebarang kos kerana kami mengewangkan tapak kami melalui hasil iklan, pautan ahli gabungan dan tajaan. Kami amat menghargai jika anda akan mengalih keluar penyekat iklan anda semasa anda melihat tapak kami.