CRM ir duomenų platformosEl. pašto rinkodara ir automatizavimas

Kaip patvirtinti el. pašto adresą naudojant reguliariąsias išraiškas (Regex). HTML5, PHP, C#, Python ir Java kodo pavyzdys.

Šiais laikais beveik kiekviena programavimo kalba palaiko reguliariąsias išraiškas. Nors kai kurie kūrėjai jų nemėgsta, jie tikrai yra geriausia praktika, nes paprastai atlieka tokias funkcijas kaip patvirtinimas itin greitai, naudojant mažiau serverio išteklių. El. pašto adresai yra puikus pavyzdys... kai juos galima lengvai patikrinti ir įsitikinti, kad jie tinkamai suformatuoti.

Atminkite, kad patvirtinimas nėra patikrinimas. Patvirtinimas tiesiog reiškia, kad perduoti duomenys atitinka standartinį formatą, kuris yra tinkamai sudarytas. Kai kurie įdomūs dalykai apie el. pašto adresus, kuriuos galima praleisti tikrinant.

Kas yra el. pašto adresas?

El. pašto adresas, apibrėžtas internetinio pranešimo formatu (RFC 5322), susideda iš dviejų pagrindinių dalių: vietinės ir domeno dalies. Vietinė dalis yra prieš @ simbolis ir domeno dalis ateina po to. Štai el. pašto adreso pavyzdys: example@example.com, Kur example yra vietinė dalis ir example.com yra domeno dalis.

  • Vietinis – Vietinėje el. pašto adreso dalyje gali būti raidinių ir skaitmeninių simbolių, taškų, brūkšnelių, pliuso ženklų ir apatinių brūkšnių derinys. Paprastai jis naudojamas konkrečiai pašto dėžutei ar paskyrai identifikuoti serveryje.
  • Domenas – El. pašto adreso domeno dalis susideda iš domeno pavadinimo ir jo aukščiausio lygio domeno (ALD). Domeno vardas yra simbolių eilutė, identifikuojanti serverį, kuriame yra el. pašto paskyra. ALD nurodo subjekto, atsakingo už domeno pavadinimą, tipą, pvz., šalies kodą (pvz., .uk) arba bendrąjį aukščiausio lygio domeną (pvz., .com, .org).

Nors tai yra pagrindinė el. pašto adreso struktūra, galiojančio el. pašto adreso taisyklės yra sudėtingos.

Kiek laiko gali būti el. pašto adresas?

Šiandien turėjau šiek tiek kasti, kad jį surasčiau, bet ar žinojote, koks yra galiojantis el. Pašto adreso ilgis? Iš tikrųjų jis suskaidytas į dalis ... Local@Domain.com.

  1. Vietinis gali būti nuo 1 iki 64 simbolių.
  2. Domenas gali būti nuo 1 iki 255 simbolių.

Tai reiškia, kad (techniškai) tai gali būti galiojantis el. pašto adresas:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Pabandykite tai pritaikyti vizitinėje kortelėje! Ironiška, bet dauguma el. pašto adresų laukų žiniatinklyje yra apriboti iki 100 simbolių... o tai techniškai neteisinga. Kai kurios kitos reguliariosios išraiškos, naudojamos el. pašto adresams patvirtinti, taip pat ieško 3 skaitmenų aukščiausio lygio domeno, pvz., .com; tačiau ilgiui nėra jokių apribojimų aukščiausio lygio domenai (pvz. Martech Zone turi 4 skaitmenis – .zona).

Reguliarūs posakiai

„RegEx“ yra puikus būdas patikrinti el. pašto adresą dėl savo programinės struktūros. Reguliarios išraiškos plačiai naudojamos programavimo kalbose ir teksto rengyklėse ir dažnai integruojamos į teksto apdorojimo bibliotekas ar sistemas. Juos palaiko daugelis programavimo kalbų, įskaitant Python, Java, C# ir JavaScript.

El. pašto adresų standartizavimas yra daug sudėtingesnis, nei jūs suprantate. Kai rašoma pagal standartą, čia yra tikroji reguliarioji el. pašto adreso išraiška, kreditas į 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 reguliaraus posakio šablonas atitinka pagrindinį el. pašto adreso formatą, įskaitant raidinius ir skaitmeninius simbolius, taškus, brūkšnelius, pliuso ženklus ir apatinius brūkšnius vartotojo varde, po kurio @ simbolis, po kurio yra domeno vardas. Svarbu atminti, kad šis šablonas tikrins tik el. pašto adreso formatą, o ne tikrąjį egzistavimas pašto adreso.

HTML5 apima el. pašto struktūros patvirtinimą

Paprasčiausias būdas užtikrinti, kad el. laiškas galioja pagal standartą, yra naudoti HTML5 el. pašto įvesties lauką:

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

Tačiau kartais jūsų žiniatinklio programa vis tiek norės patvirtinti el. pašto adresą tiek naršyklėje, tiek įvedant, tiek pateikus jį serveriui.

Regex tinkamam el. pašto adresui PHP

Nedaug žmonių tai supranta, tačiau dabar PHP turi integruotą RFC standartą filtro patvirtinimo funkcija.

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

Regex tinkamam el. pašto adresui C#

Štai pagrindinis el. pašto adreso patvirtinimas 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);
    }
}

Praktinis šio metodo naudojimas:

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, kad gautumėte tinkamą el. pašto adresą Java

Štai pagrindinis „Java“ el. pašto adreso patvirtinimas

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

Praktinis šio metodo naudojimas:

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 tinkamam el. pašto adresui Python

Štai pagrindinis Python el. pašto adreso patvirtinimas:

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

Praktinis šio metodo naudojimas:

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, kad gautumėte tinkamą el. pašto adresą JavaScript

El. pašto adreso struktūrai patikrinti nebūtina turėti pernelyg sudėtingo standarto. Štai paprastas būdas naudoti „JavaScript“.

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

Žinoma, tai neatitinka RFC standarto, todėl galbūt norėsite patikrinti kiekvieną duomenų skyrių, kad įsitikintumėte, jog jis galioja. Ši reguliarioji išraiška atitiks maždaug 99.9 % el. pašto adresų. Jis nėra visiškai standartinis, bet naudingas praktiškai bet kokiam projektui.

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

Kai kurie iš šių pavyzdžių atitenka HTML.form.guide.

Douglas Karr

Douglas Karr yra BRO OpenINSIGHTS ir įkūrėjas Martech Zone. Douglas padėjo daugybei sėkmingų MarTech pradedančiųjų įmonių, padėjo atlikti daugiau nei 5 mlrd. Douglas yra tarptautiniu mastu pripažintas skaitmeninės transformacijos ir MarTech ekspertas bei pranešėjas. Douglasas taip pat yra paskelbtas Dummie vadovo ir verslo lyderystės knygos autorius.

Susiję straipsniai

Atgal į viršų mygtukas
arti

Aptiktas skelbimų blokas

Martech Zone gali pateikti jums šį turinį nemokamai, nes gauname pajamų iš savo svetainės per pajamas iš skelbimų, filialų nuorodas ir rėmimą. Būtume dėkingi, jei peržiūrėdami mūsų svetainę pašalintumėte skelbimų blokavimo priemonę.