Vi går rett på det korte svaret, og tar oss av den langdryge forklaringen etterpå.
Ganske enkelt – nei.
Jeg kan høre utviklerne og djevelens talsmenn der ute stille spørsmålstegn ved at vi blankt avviser regex-validering av e-post, noe som igjen fører til spørsmålet om hvorfor det i det hele tatt eksisterer.
Vi skal ikke nekte for at det kan være et nyttig verktøy, og det er absolutt en smart liten detalj som hindrer brukere i å legge til hvilken som helst tekst i et skjema eller et annet kjørbart medium. På et tidspunkt spilte regex en rolle i hvordan vi samler inn e-postdata.
Men nå? I tråd med dagens teknologi og standarder?
Vi sier at det har hatt sin tid.
Hvis du vil sikre at du får rene e-postadresser som ikke ødelegger for e-postmarkedsføringen din, avvisningsfrekvensen, leveringspoengene og alle de tingene du vet at du trenger for å holde beregningene dine høye og konverteringene dine rullende, er ikke regex veien å gå.
Hva er regex for e-postvalidering?
Regex er en forkortelse for regulære uttrykk; det er et begrep som brukes i ulike kodespråk. Regex, eller regulære uttrykk, refererer til kodede tekststrenger som er utformet for å matche mønstre som finnes i andre strenger.
De kan være ganske nyttige når en bruker trenger å matche en streng med tegn med en bestemt type mønster for å verifisere at den oppgitte informasjonen ser riktig ut. Tenk på telefonnumre, postnumre, datoer og, ja, den viktigste vi er opptatt av – e-postadresser.
Med et enkelt mønster kan en eksakt streng matches med et sett med regler. Når enkle mønstre blir mer kompliserte, blir regex mindre effektiv og mer sannsynlig å gi dårlige resultater.
Det høres bra ut så langt – så hva er problemet med regex-validering av e-post?
Selv om regex er et smart verktøy, dekker det ikke alle kontrollene du trenger. Ta en titt på disse:
[email protected]
[email protected]
[email protected]
[email protected]
La oss si at du oppdager noen av de ovennevnte som tilføyelser til e-postlisten din; du vil flagge dem med en gang (eller du burde!). Du ville ikke trodd at noen av dem var gyldige oppføringer fra ekte mennesker som viser interesse for produktet og tjenesten din.
Regex-validering av e-post ville imidlertid gjort det. Den ville slippe alle gjennom.
Hvorfor det? Fordi de åpenbart falske adressene fortsatt følger mønstrene som reglene skal bekrefte.
Det ser ikke så smart ut nå, gjør det vel?
Det er for restriktivt
Til tross for at de foregående eksemplene ser så åpenbart falske ut for oss, inneholder noen e-postformater langt flere spesialtegn enn vi er vant til å se.
I sin enkleste form følger e-postadressen følgende format:
brukernavn@domene
E-postadresser er bygget opp i tre deler:
- Den lokale delen – vanligvis et brukernavn eller en jobbrolle
- @-tegnet
- Domenet, inkludert et gyldig toppnivådomene (TLD)
Hvis det var alt koden måtte se etter, ville en typisk regex-sjekk i javascript forhindre at mange dårlige kontakter havnet i listene våre.
Vanligvis kan e-postadressene våre inneholde følgende tegn:
- Tall: 0 til 9
- Små og store bokstaver: a til z og A til Z
- Ytterligere spesialtegn: !#$%&’*+-/=?^_`{|}~
- Punkttegnet [.]: Men ikke som første eller siste tegn, eller brukt fortløpende
Hvis noen skulle søke på e-postlisten din med noen eller en rekke av disse spesialtegnene, ville de fleste av oss stilt spørsmål ved om noe var galt, og det ville vi tatt feil i – de er alle tillatt i henhold til gjeldende konvensjon.
Regex sjekker ikke noe annet enn syntaksen
Utviklere er kanskje bare opptatt av å få adresser som ser gyldige ut gjennom et skjema, men det er ikke vi. Vi trenger å vite det:
- Eksisterer domenet?
- Finnes det en MX-oppføring som viser at domenet har en e-postserver?
- Har e-postadressen en fungerende e-postkonto?
Alle disse spørsmålene som gir et «nei», vil også få et hardt «nei» fra oss som markedsførere. Regex sjekker ikke for noe av dette – bare et dedikert verktøy for e-postvalidering vil fange opp slike røde flagg.
Den ser ikke midlertidige og disponible adresser
Som e-postmarkedsførere er vi mer enn klar over at mange brukere oppretter falske, midlertidige kontoer for å dra nytte av et tilbud, en kampanje eller en annen situasjon. Det er en enkel måte å unngå å legge til rot i sine eksisterende e-postkontoer eller gi fra seg informasjon om seg selv som de ikke ønsker.
Det er enkelt å opprette en midlertidig e-postadresse som en engangsløsning. Disse adressene forsvinner ofte i løpet av 10-15 minutter etter at de er opprettet, noe som gjør dem svært godt egnet til formålet.
Regex sjekker ikke for disse. Midlertidige e-postadresser og engangsadresser består alle regex-valideringstestene.
Hvordan setter du opp et regex-javascript for e-post?
Hvis du er en uerfaren utvikler, trenger du sannsynligvis ikke vår grunnleggende forståelse av emnet for å fortelle deg hvordan du gjør det, men for de av dere som har litt erfaring med koding, bør det se omtrent slik ut:
function ValidateEmail(inputText)
{
var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
if(inputText.value.match(mailformat))
{
alert(«Dette er ikke en gyldig e-postadresse»);
returnere false;
}
}
Den delen som gjør alt det tunge arbeidet, er var mailformat linje. Utførelsen og tegnene i den lange kodelinjen definerer hva som er tillatt og hva som ikke er det.
Du kan se de enkle tingene: A , A , 0-9 , og deretter spesialtegnene i den første, lokale delen. Den +@ dikterer deretter det lokale og domeneseparatoren. Etter @ har vi så en annen rekke instruksjoner om hva som er tillatt for domenedelen.
Hvis du vil ha et mye dypere innblikk i hva som skal til for å implementere en regex-validator, kan du gå til abstract. De har en veldig god guide til nøyaktig hva som kreves, og de er eksperter på alle typer API-tillegg og inkluderinger.
Hvis en jobb er verdt å gjøre, er den verdt å gjøre godt – så valider listene dine på best mulig måte
Det er bare én måte å sikre at e-postlistene dine er i topp stand på, og det er å bruke et dedikert verktøy for e-postvalidering – som Utkaster .
Regex-validering kan føre til at falske e-postadresser kommer inn i e-postlistene dine, i tillegg til å blokkere gyldige e-postadresser. Når det gjelder å legge til en autentiseringsmetode i nettskjemaene eller datainnsamlingsmetodene dine, foreslår vi andre, mer robuste former for validering.
Til syvende og sist er det å kjøre e-postlistene dine gjennom en plattform som Bouncer den aller beste måten å holde listene rene og sunne, avvisningsratene lave, leveringsevnen høy og avsenderpoengsummen din i toppform.
Ofte stilte spørsmål om regex for e-postmeldinger
Hva er en enkel regex for e-postvalidering?
En enkel regex (regular expression) for e-postvalidering er en sekvens av tegn som definerer et søkemønster for e-postadresser. Den kan brukes til å sjekke om en streng samsvarer med standardformatet for en e-postadresse. Det er imidlertid viktig å merke seg at en enkel regex kanskje ikke fanger opp alle ugyldige e-postadresser og kan tillate at noen ikke-standardiserte e-postformater slipper gjennom.
Hvordan hjelper regex med å filtrere bort ugyldige e-postadresser?
Email regex brukes til å matche inndatastrengen (e-postadressen som er skrevet inn av en bruker) mot et bestemt format. Hvis e-postadressen ikke samsvarer med dette formatet, anses den som ugyldig. Dette kan bidra til å forhindre skrivefeil, sikre datakonsistens og beskytte mot visse typer injeksjonsangrep.
Hva er et hvitt mellomromstegn i forbindelse med regex for e-post?
Et mellomromstegn i regex for e-post refererer til alle tegn som brukes til å representere tomme mellomrom, for eksempel mellomrom, tabulator eller linjeskift. I forbindelse med e-postadresser er mellomromstegn vanligvis ikke tillatt, og forekomsten av slike tegn vil gjøre en e-postadresse ugyldig.
Hva er en kompleks e-postregeks?
En kompleks e-postregeks er et mer detaljert og presist regulært uttrykk som brukes til validering av e-post. Det kan ta hensyn til ulike aspekter ved e-postadresser, for eksempel domenenavn, ikke-latinske tegn og spesifikke regler for hvor visse tegn kan vises. Selv om det gir en grundigere validering, kan det også være mer utfordrende å implementere og vedlikeholde.
Hvordan håndterer regex for e-post ikke-latinske tegn og Unicode?
Håndtering av ikke-latinske tegn og Unicode i regex for e-post kan være komplisert. Noen e-postsystemer tillater Unicode eller ikke-latinske e-postadresser, men de støttes ikke overalt. En kompleks regex for e-post kan inkludere tegnklasser for å matche ikke-latinske tegn, men det er viktig å forstå de spesifikke kravene og begrensningene til e-postsystemet du jobber med.
Hvilken rolle spiller tegnklasser i regex i e-post?
Tegnklasser i regex for e-post definerer et sett med tegn som kan matche ethvert enkelt tegn i inndatastrengen. Tegnklassen [a-z] samsvarer for eksempel med alle engelske små bokstaver. Tegnklasser kan brukes til å spesifisere gyldige tegn for ulike deler av en e-postadresse.
Hva er begrensningene med regex for e-postvalidering?
Selv om regex kan fange opp mange vanlige feil i e-postadresser, er det ikke en fullstendig valideringsmetode. Noen ugyldige adresser kan likevel passere en regex-sjekk, og noen gyldige adresser kan mislykkes, spesielt hvis de bruker mindre vanlige formater eller tegn. For grundig e-postvalidering anbefales det ofte å bruke e-postvalideringstjenester eller å sende en bekreftelses-e-post til den oppgitte adressen.