We gaan meteen naar het korte antwoord en zorgen voor de lange uitleg daarna.
Heel eenvoudig-nee.
Ik hoor de ontwikkelaars en de voorstanders van duivels al vraagtekens zetten bij onze botte ontkenning van regex e-mailvalidatie, wat dan weer de vraag oproept waarom het überhaupt bestaat.
We zullen niet ontkennen dat het een nuttig instrument kan zijn, en het is zeker een slim stukje gereedschap om te voorkomen dat gebruikers om het even welke tekst toevoegen aan een formulier of ander uitvoerbaar medium. Ooit speelde e-mail regex een rol in de manier waarop wij e-mailgegevens verzamelen.
Maar nu? In overeenstemming met de huidige technologie en normen?
Wij zeggen dat het zijn langste tijd heeft gehad.
Als je er zeker van wilt zijn dat je schone e-mailadressen krijgt die je e-mailmarketing, je bouncepercentages en je deliverabilityscores niet in de war sturen, en al die dingen die je nodig hebt om je statistieken hoog te houden en je conversies binnen te halen, dan is regex niet de manier.
Wat is e-mail validatie regex?
Regex is een afkorting van reguliere expressie; het is een term die in verschillende codeertalen wordt gebruikt. Regex, of reguliere expressies, verwijst naar gecodeerde tekstreeksen die ontworpen zijn om overeen te komen met patronen die in andere reeksen worden gevonden.
Ze kunnen heel handig zijn wanneer een gebruiker een tekenreeks moet vergelijken met een bepaald type patroon om na te gaan of de verstrekte informatie correct lijkt. Denk maar aan telefoonnummers, postcodes, datums, en ja, het belangrijkste waar we ons zorgen over maken – e-mailadressen.
Met een eenvoudig patroon kan een exacte string worden gematched met een set regels. Wanneer eenvoudige patronen ingewikkelder worden, wordt regex minder efficiënt en is de kans groter dat het slechte resultaten oplevert.
Het klinkt goed tot nu toe, dus wat is het probleem met regex e-mail validatie?
Hoe handig regex ook is, het dekt niet alle controles die je nodig hebt. Kijk eens naar deze:
[email protected]
[email protected]
[email protected]
[email protected]
Stel dat u een van de bovenstaande vermeldingen ziet als toevoegingen aan uw e-maillijst; dan zou u ze meteen markeren (of dat zou u moeten doen!). Je zou niet geloven dat een van hen geldige inzendingen zijn van echte mensen die interesse tonen in je product en dienst.
Regex e-mail validatie zou dat wel doen. Het zou ze allemaal doorlaten.
Waarom? Omdat die duidelijk valse adressen nog steeds de patronen volgen die de regels willen bevestigen.
Het ziet er niet zo slim uit nu, is het niet?
Het is te beperkend.
Ondanks het feit dat de vorige voorbeelden zo duidelijk vals lijken, bevatten sommige e-mailformaten veel meer speciale tekens dan we gewend zijn.
In zijn eenvoudigste vorm volgt een e-mailadres het volgende formaat:
gebruikersnaam@domein
E-mailadressen zijn opgebouwd uit drie delen:
- Het lokale deel – meestal een gebruikersnaam of functie
- Het @ teken
- Het domein, met inbegrip van een geldige TLD (Top Level Domain)
Als dat alles was waar de code naar moest zoeken, dan zou een typische javascript regex check voorkomen dat veel slechte contacten in onze lijsten terecht zouden komen.
Gewoonlijk kunnen onze e-mailadressen de volgende tekens bevatten:
- Cijfers: 0 tot 9
- Kleine letters en hoofdletters: a tot z en A tot Z
- Het teken punt [.]: Maar niet als eerste of laatste teken, of achtereenvolgens gebruikt
Als iemand zich zou aanmelden voor uw e-maillijst met een of meer van deze speciale tekens, zouden de meesten van ons zich afvragen of er iets niet in orde was, en dat zouden we ten onrechte doen – ze zijn allemaal toegestaan volgens de huidige conventie.
Regex controleert niets anders dan de syntax
Ontwikkelaars zijn misschien alleen geïnteresseerd in het verkrijgen van geldig ogende adressen via een formulier, maar wij niet. Wij moeten het weten:
- Bestaat het domein?
- Is er een MX record om te bewijzen dat het domein een mail server heeft?
- Heeft het emailadres een werkende emailaccount?
Elk van deze vragen die een ‘nee’ scoren, krijgt ook een harde ‘nee’ van ons als marketeers. Regex controleert daar niet op – alleen een speciaal e-mail validatieprogramma zal zulke rode vlaggen naar boven halen.
Het herkent tijdelijke en wegwerpadressen niet
Als e-mailmarketeers weten we maar al te goed dat veel gebruikers tijdelijke nepaccounts aanmaken om te profiteren van een aanbieding, promotie of andere situatie. Het is een gemakkelijke manier om te voorkomen dat hun bestaande e-mailaccounts onoverzichtelijk worden of dat ze informatie over zichzelf prijsgeven die ze niet willen.
Het is gemakkelijk om een tijdelijk of wegwerp e-mail adres in te stellen als eenmalige oplossing. Deze adressen verdwijnen vaak binnen 10 of 15 minuten nadat ze zijn ingesteld, waardoor ze ongelooflijk geschikt zijn voor het doel.
Regex controleert daar niet op. Tijdelijke en wegwerp e-mailadressen voldoen aan alle regex-validatietests.
Hoe stel je een e-mail regex javascript in?
Als je een beginnende ontwikkelaar bent, heb je onze basiskennis van het onderwerp waarschijnlijk niet nodig om je te vertellen hoe, maar voor degenen onder jullie met enige ervaring in coderen, zou het er ongeveer zo uit moeten zien:
functie 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])?
als(inputText.value.match(mailformat))
{
alert(“Dit is geen geldig e-mailadres”);
geef vals terug;
}
}
Het deel dat al het zware werk doet is de vari mailformat regel. De uitvoering en tekens in die lange regel code bepalen wat is toegestaan en wat niet.
Je kunt de simpele dingen zien: A , A , en vervolgens de speciale tekens in het eerste, lokale gedeelte. De +@ dicteert dan het lokale en domein scheidingsteken. Na de @ volgt een reeks instructies over wat is toegestaan voor het domeingedeelte.
Als je een veel dieper inzicht wilt in wat er nodig is om een regex validator te implementeren, ga dan naar abstract. Zij hebben een heel goede gids over wat er precies nodig is en zijn experts als het gaat om allerlei API toevoegingen en insluitsels.
Als een klus de moeite waard is, is het de moeite waard om hem goed te doen, dus valideer je lijsten op de best mogelijke manier.
Er is maar één manier om er zeker van te zijn dat uw e-maillijsten in topconditie zijn, en dat is door een speciaal e-mailvalidatieprogramma te gebruiken, zoals Uitsmijter .
Regex-validatie kan verantwoordelijk zijn voor het binnenlaten van valse e-mailadressen in uw e-maillijsten en het blokkeren van geldige adressen. Als het gaat om het toevoegen van een verificatiemethode aan uw online formulieren of gegevensverzamelingsmethoden, zouden we andere, meer robuuste vormen van validatie voorstellen.
Uiteindelijk is het beheren van uw e-maillijsten via een platform als Bouncer verreweg de beste manier om uw lijsten schoon en gezond te houden, uw bouncepercentages laag, uw deliverability hoog en uw afzenderscore in topvorm.
E-mail bericht Regex FAQ
Wat is een eenvoudige regex voor e-mailvalidatie?
Een eenvoudige regex (reguliere expressie) voor e-mailvalidatie is een reeks tekens die een zoekpatroon voor e-mailadressen definieert. Het kan worden gebruikt om te controleren of een tekenreeks overeenkomt met de standaardindeling van een e-mailadres. Het is echter belangrijk op te merken dat een eenvoudige regex mogelijk niet alle ongeldige e-mailadressen vangt en sommige niet-standaard e-mailformaten doorlaat.
Hoe helpt e-mail regex bij het uitfilteren van ongeldige e-mailadressen?
E-mail regex wordt gebruikt om de invoerstring (het e-mailadres dat door een gebruiker is ingevoerd) te vergelijken met een specifieke indeling. Als het e-mailadres niet overeenkomt met deze indeling, wordt het als ongeldig beschouwd. Dit kan typefouten helpen voorkomen, gegevensconsistentie garanderen en beschermen tegen bepaalde soorten injectieaanvallen.
Wat is een spatie in de context van e-mail regex?
Een spatie in e-mail regex verwijst naar elk teken dat wordt gebruikt om spaties weer te geven, zoals spaties, tabs of regeleinden. In de context van e-mailadressen zijn spaties meestal niet toegestaan en hun aanwezigheid zou een e-mailadres ongeldig maken.
Wat is een complexe e-mailregex?
Een complexe e-mailregex is een meer gedetailleerde en precieze reguliere expressie die wordt gebruikt voor e-mailvalidatie. Deze kan rekening houden met verschillende aspecten van e-mailadressen, zoals domeinnamen, niet-Latijnse tekens en specifieke regels over waar bepaalde tekens mogen voorkomen. Hoewel het een grondigere validatie biedt, kan het ook uitdagender zijn om te implementeren en te onderhouden.
Hoe gaat e-mail regex om met niet-Latijnse tekens en Unicode?
Omgaan met niet-Latijnse tekens en Unicode in e-mail regex kan complex zijn. Sommige e-mailsystemen staan Unicode of niet-Latijnse e-mailadressen toe, maar ze worden niet universeel ondersteund. Een complexe e-mailregex kan tekenklassen bevatten om niet-Latijnse tekens te matchen, maar het is essentieel om de specifieke vereisten en beperkingen van het e-mailsysteem waarmee je werkt te begrijpen.
Wat is de rol van tekenklassen in e-mailregex?
Tekenklassen in e-mailregex definiëren een verzameling tekens die kunnen overeenkomen met elk afzonderlijk teken in de invoerstring. De tekenklasse [a-z] komt bijvoorbeeld overeen met elke kleine Engelse letter. Tekenklassen kunnen worden gebruikt om geldige tekens te specificeren voor verschillende delen van een e-mailadres.
Wat zijn de beperkingen van e-mailregex voor e-mailvalidatie?
Hoewel e-mailregex veel voorkomende fouten in e-mailadressen kan opsporen, is het geen volledige validatiemethode. Sommige ongeldige adressen kunnen nog steeds door een regexcontrole komen en sommige geldige adressen kunnen falen, vooral als ze minder gebruikelijke indelingen of tekens gebruiken. Voor grondige e-mailvalidatie wordt vaak aangeraden om gebruik te maken van e-mailvalidatieservices of om een bevestigingsmail te sturen naar het ingevoerde adres.