CRM i platforme podatakaE-mail marketing i automatizacija

Kako provjeriti e-mail adresu s regularnim izrazima (Regex). Primjer HTML5, PHP, C#, Python i Java koda.

Gotovo svaki programski jezik danas podržava regularne izraze. Iako ih neki programeri ne vole, oni su zaista najbolja praksa jer obično izvršavaju funkcije poput validacije izuzetno brzo sa manje serverskih resursa. E-mail adrese su savršen primjer... gdje se mogu lako provjeriti kako bi se osiguralo da su pravilno formatirane.

Imajte na umu da validacija nije verifikacija. Validacija jednostavno znači da proslijeđeni podaci slijede standardni format koji je ispravno konstruiran. Neke zanimljive stvari o adresama e-pošte koje bi mogle biti propuštene nakon validacije.

Šta je e-mail adresa?

Adresa e-pošte, kako je definisano Internet Message Format (RFC 5322), sastoji se od dva glavna dijela: lokalnog dijela i dijela domene. Lokalni dio dolazi prije @ simbol i domenski dio dolazi iza. Evo primjera e-mail adrese: example@example.com, gdje example je lokalni dio i example.com je domenski dio.

  • lokalne – Lokalni dio adrese e-pošte može sadržavati kombinaciju alfanumeričkih znakova, tačaka, crtica, plus znakova i donjih crta. Obično se koristi za identifikaciju određenog poštanskog sandučeta ili naloga na serveru.
  • područje – Domenski dio adrese e-pošte sastoji se od naziva domene i njegove najviše domene (TLD). Ime domene je niz znakova koji identifikuje server koji hostuje nalog e-pošte. TLD specificira tip entiteta odgovornog za ime domene, kao što je kod zemlje (npr .uk) ili generički domen najvišeg nivoa (npr .com, .org).

Iako je ovo osnovna struktura adrese e-pošte, pravila o tome šta čini valjanu adresu e-pošte su složena.

Koliko dugo može trajati e-mail adresa?

Danas sam morao malo kopati da bih je pronašao, ali jeste li znali koja je važeća dužina adrese e-pošte? Zapravo je razbijen na dijelove ... Local@Domain.com.

  1. Lokalno može imati od 1 do 64 znaka.
  2. Domena može sadržavati od 1 do 255 znakova.

To znači da bi – tehnički – ovo mogla biti važeća adresa e-pošte:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Pokušajte to uklopiti na vizit kartu! Ironično, većina polja adrese e-pošte ograničena je na 100 znakova na webu... što je tehnički pogrešno. Neki od drugih regularnih izraza koji se koriste za validaciju adresa e-pošte takođe traže trocifreni domen najvišeg nivoa, kao što je .com; međutim, nema ograničenja na dužinu domene najvišeg nivoa (npr. Martech Zone ima 4 cifre – .zona).

Regularni izrazi

RegEx je savršena metoda za testiranje adrese e-pošte zbog svoje programske strukture. Regularni izrazi se široko koriste u programskim jezicima i uređivačima teksta i često su integrirani u biblioteke ili okvire za obradu teksta. Podržavaju ih mnogi programski jezici, uključujući Python, Java, C# i JavaScript, između ostalih.

Standardizacija adrese e-pošte je daleko složenija nego što mislite. Kada je napisano u skladu sa standardom, evo pravog regularnog izraza za adresu e-pošte, kredit za 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])?

Ovaj obrazac regularnog izraza odgovara osnovnom formatu adrese e-pošte, uključujući alfanumeričke znakove, tačke, crtice, znakove plus i donje crte u korisničkom imenu, nakon čega slijedi @ simbol, nakon čega slijedi naziv domene. Važno je napomenuti da će ovaj obrazac provjeriti samo format adrese e-pošte, a ne stvarnu postojanje adrese e-pošte.

HTML5 uključuje provjeru strukture e-pošte

Najlakši način da se osigura da je e-pošta važeća u skladu sa standardom je korištenje HTML5 polja za unos e-pošte:

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

Međutim, postoje slučajevi kada će vaša web aplikacija i dalje htjeti potvrditi adresu e-pošte i u pretraživaču kada se unese i kada se pošalje na vaš server.

Redovni izraz za ispravnu adresu e-pošte u PHP-u

Malo ljudi to shvata, ali PHP sada ima ugrađen RFC standard funkcija validacije filtera.

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

Redovni izraz za ispravnu adresu e-pošte u C#

Evo osnovne provjere e-mail adrese u 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);
    }
}

Praktična upotreba ove metode:

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

Redovni izraz za ispravnu adresu e-pošte u Javi

Evo osnovne provjere e-mail adrese u Javi

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

Praktična upotreba ove metode:

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

Redovni izraz za ispravnu adresu e-pošte u Pythonu

Evo osnovne provjere e-mail adrese u Pythonu:

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

Praktična upotreba ove metode:

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.")

Redovni izraz za ispravnu adresu e-pošte u JavaScript-u

Ne morate imati previše složen standard za provjeru strukture adrese e-pošte. Evo jednostavnog načina korištenja JavaScripta.

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

Naravno, to nije u skladu sa RFC standardom, pa ćete možda htjeti provjeriti valjanost svakog dijela podataka kako biste bili sigurni da je valjan. Ovaj regularni izraz će biti u skladu sa oko 99.9% adresa e-pošte. Nije u potpunosti u skladu sa standardom, ali je koristan za gotovo svaki projekat.

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

Zasluge za neke od ovih primjera pripadaju HTML.form.guide.

Douglas Karr

Douglas Karr je CMO of OpenINSIGHTS i osnivač Martech Zone. Douglas je pomogao desetinama uspješnih MarTech startupova, pomogao je u dubinskom pregledu od preko 5 milijardi dolara u Martechovim akvizicijama i investicijama, te nastavlja da pomaže kompanijama u implementaciji i automatizaciji njihovih prodajnih i marketinških strategija. Douglas je međunarodno priznati stručnjak za digitalnu transformaciju i MarTech stručnjak i govornik. Douglas je također objavljeni autor Dummie's vodiča i knjige o poslovnom liderstvu.

Vezani članci

Nazad na vrh dugmeta
blizu

Adblock otkriven

Martech Zone je u mogućnosti da vam pruži ovaj sadržaj bez ikakvih troškova jer mi unovčavamo našu stranicu putem prihoda od oglasa, partnerskih veza i sponzorstava. Bili bismo zahvalni ako biste uklonili svoj blokator oglasa dok gledate našu web stranicu.