CRM un datu platformasE-pasta mārketings un automatizācija

Kā pārbaudīt e-pasta adresi ar regulārām izteiksmēm (Regex). HTML5, PHP, C#, Python un Java koda paraugs.

Praktiski katra programmēšanas valoda mūsdienās atbalsta regulārās izteiksmes. Lai gan dažiem izstrādātājiem tie nepatīk, tie patiešām ir labākā prakse, jo tie parasti veic tādas funkcijas kā validācija ārkārtīgi ātri ar mazākiem servera resursiem. E-pasta adreses ir lielisks piemērs... kur tās var viegli pārbaudīt, lai pārliecinātos, ka tās ir pareizi formatētas.

Paturiet prātā, ka apstiprināšana nav pārbaude. Validācija vienkārši nozīmē, ka nodotie dati atbilst standarta formātam, kas ir pareizi izveidots. Dažas interesantas lietas par e-pasta adresēm, kuras validācijas laikā var palaist garām.

Kas ir e-pasta adrese?

E-pasta adrese, kā noteikts interneta ziņojuma formātā (RFC 5322), sastāv no divām galvenajām daļām: vietējās daļas un domēna daļas. Vietējā daļa ir pirms @ simbols un domēna daļa nāk pēc tam. Šeit ir e-pasta adreses piemērs: example@example.com, Kur example ir vietējā daļa un example.com ir domēna daļa.

  • Uz vietas – E-pasta adreses vietējā daļa var saturēt burtciparu rakstzīmju, punktu, defisu, plus zīmju un pasvītru kombinācijas. To parasti izmanto, lai identificētu noteiktu pastkasti vai kontu serverī.
  • Domēns – E-pasta adreses domēna daļa sastāv no domēna nosaukuma un tā augstākā līmeņa domēna (TLD). Domēna nosaukums ir rakstzīmju virkne, kas identificē serveri, kas mitina e-pasta kontu. TLD norāda par domēna nosaukumu atbildīgās entītijas veidu, piemēram, valsts kodu (piemēram, .uk) vai vispārīgu augstākā līmeņa domēnu (piem., .com, .org).

Lai gan šī ir e-pasta adreses pamatstruktūra, noteikumi par derīgu e-pasta adresi ir sarežģīti.

Cik ilgi var būt e-pasta adrese?

Man šodien vajadzēja nedaudz rakt, lai to atrastu, bet vai zinājāt, kāds ir derīgs e-pasta adreses garums? Tas faktiski ir sadalīts daļās ... Local@Domain.com.

  1. Vietējais var būt no 1 līdz 64 rakstzīmēm.
  2. Domēna garums var būt no 1 līdz 255.

Tas nozīmē, ka tehniski šī varētu būt derīga e-pasta adrese:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Mēģiniet to ievietot vizītkartē! Ironiski, ka vairums e-pasta adreses lauku tīmeklī ir ierobežoti līdz 100 rakstzīmēm… kas ir tehniski nepareizi. Dažas citas regulārās izteiksmes, ko izmanto e-pasta adrešu apstiprināšanai, arī meklē 3 ciparu augstākā līmeņa domēnu, piemēram, .com; tomēr garumam nav ierobežojumu augstākā līmeņa domēni (piem. Martech Zone ir 4 cipari – .zona).

Regulāras izteiksmes

RegEx ir lieliska metode e-pasta adreses pārbaudei tās programmatiskās struktūras dēļ. Regulārās izteiksmes tiek plaši izmantotas programmēšanas valodās un teksta redaktoros, un tās bieži tiek integrētas teksta apstrādes bibliotēkās vai ietvaros. Tos atbalsta daudzas programmēšanas valodas, tostarp Python, Java, C# un JavaScript.

E-pasta adrešu standartizācija ir daudz sarežģītāka, nekā jūs saprotat. Rakstot atbilstoši standartam, šeit ir patiesā regulārā izteiksme e-pasta adresei, kredīts uz 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])?

Šis regulārās izteiksmes modelis atbilst e-pasta adreses pamata formātam, ieskaitot burtciparu rakstzīmes, punktus, defises, pluszīmes un pasvītras lietotājvārdā, kam seko @ simbols, kam seko domēna nosaukums. Ir svarīgi ņemt vērā, ka šis modelis pārbaudīs tikai e-pasta adreses formātu, nevis faktisko esamība no e-pasta adreses.

HTML5 ietver e-pasta struktūras validāciju

Vienkāršākais veids, kā nodrošināt e-pasta derīgumu atbilstoši standartam, ir izmantot HTML5 e-pasta ievades lauku:

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

Tomēr dažkārt jūsu tīmekļa lietojumprogramma joprojām vēlēsies apstiprināt e-pasta adresi gan pārlūkprogrammā, kad tā tiek ievadīta, gan pēc tās iesniegšanas jūsu serverim.

Regex pareizai e-pasta adresei PHP

Tikai daži cilvēki to saprot, bet PHP tagad ir iebūvēts RFC standarts filtra validācijas funkcija.

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

Regex pareizai e-pasta adresei C#

Šeit ir sniegta pamata e-pasta adreses pārbaude 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);
    }
}

Šīs metodes praktiskā izmantošana:

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 pareizai e-pasta adresei Java

Šeit ir sniegta pamata e-pasta adreses validācija 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();
    }
}

Šīs metodes praktiskā izmantošana:

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 pareizai e-pasta adresei Python

Tālāk ir sniegta Python e-pasta adreses pamata validācija:

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

Šīs metodes praktiskā izmantošana:

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 pareizai e-pasta adresei JavaScript

E-pasta adreses struktūras pārbaudei nav jābūt pārāk sarežģītam standartam. Šeit ir vienkāršs JavaScript izmantošanas veids.

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

Protams, tas neatbilst RFC standartam, tāpēc, iespējams, vēlēsities pārbaudīt katru datu sadaļu, lai pārliecinātos, ka tā ir derīga. Šī regulārā izteiksme atbilst aptuveni 99.9% e-pasta adrešu. Tas nav pilnībā atbilstošs standartam, taču tas ir noderīgs praktiski jebkuram projektam.

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

Atzinība dažiem no šiem piemēriem iet uz HTML.form.guide.

Douglas Karr

Douglas Karr ir TKO no OpenINSIGHTS un dibinātājs Martech Zone. Duglass ir palīdzējis desmitiem veiksmīgu MarTech jaunuzņēmumu, ir palīdzējis veikt vairāk nekā 5 miljardu dolāru Martech iegādes un ieguldījumu uzticamības pārbaudi, kā arī turpina palīdzēt uzņēmumiem ieviest un automatizēt to pārdošanas un mārketinga stratēģijas. Douglas ir starptautiski atzīts digitālās transformācijas un MarTech eksperts un runātājs. Duglass ir arī publicēts Dummie rokasgrāmatas un biznesa vadības grāmatas autors.

Saistītie raksti

Atpakaļ uz augšu pogu
aizvērt

Reklāmu bloķēšana konstatēta

Martech Zone var nodrošināt jums šo saturu bez maksas, jo mēs gūstam peļņu no savas vietnes, izmantojot ieņēmumus no reklāmām, saistīto uzņēmumu saites un sponsorēšanu. Būsim pateicīgi, ja, apskatot mūsu vietni, noņemtu savu reklāmu bloķētāju.