Vi går direkt till det korta svaret och tar hand om den långa förklaringen efteråt.
Helt enkelt nej.
Jag kan höra utvecklarna och djävulens förespråkare där ute ifrågasätta vårt trubbiga förnekande av regex-validering av e-postmeddelanden, vilket leder till ytterligare en fråga om varför det överhuvudtaget existerar.
Vi förnekar inte att det kan vara ett användbart verktyg, och det är verkligen ett smart litet verktyg för att hindra användare från att lägga till vilken text som helst i ett formulär eller annat exekverbart medium. En gång i tiden hade e-postregex en roll att spela i hur vi samlar in e-postdata.
Men nu? I linje med dagens teknik och standarder?
Vi säger att den har haft sin tid.
Om du vill försäkra dig om att du får rena e-postadresser som inte kommer att störa din e-postmarknadsföring, dina avvisningsfrekvenser, leveranssäkerheten och alla de saker som du vet att du behöver för att hålla dina mätvärden höga och dina konverteringar i rullning, så är regex inte rätt sätt.
Vad är e-postvalideringsregex?
Regex är en förkortning för reguljära uttryck och är en term som används i olika kodningsspråk. Regex, eller reguljära uttryck, avser kodade textsträngar som är utformade för att matcha mönster som finns i andra strängar.
De kan vara mycket användbara när en användare behöver matcha en teckensträng med en viss typ av mönster för att kontrollera att den information som lämnats är korrekt. Tänk på telefonnummer, postnummer, datum och ja, den stora frågan som vi är intresserade av – e-postadresser.
Med ett enkelt mönster kan en exakt sträng matchas mot en uppsättning regler. När enkla mönster blir mer komplicerade blir regex mindre effektivt och det är mer sannolikt att de ger dåliga resultat.
Det låter bra än så länge – så vad är problemet med regex-valideringen av e-postmeddelanden?
Även om regex är ett smart verktyg täcker det inte alla kontroller du behöver. Ta en titt på dessa:
[email protected]
[email protected]
[email protected]
[email protected]
Låt oss säga att du upptäcker att någon av de ovan nämnda personerna kan vara ett tillägg till din e-postlista; du skulle märka dem direkt (eller borde göra det!). Du skulle inte tro att någon av dem var giltiga poster från riktiga människor som visar intresse för din produkt och tjänst.
Regex e-postvalidering skulle dock göra det. Den skulle släppa igenom dem alla.
Varför? Eftersom de uppenbart falska adresserna fortfarande följer de mönster som reglerna syftar till att bekräfta.
Det ser inte riktigt lika smart ut nu, eller hur?
Den är för restriktiv
Trots att de tidigare exemplen ser så uppenbart falska ut för oss innehåller vissa e-postformat betydligt fler specialtecken än vad vi är vana vid att se.
I sin enklaste form har en e-postadress följande format:
användarnamn@domän
E-postadresser består av tre delar:
- Den lokala delen – vanligtvis ett användarnamn eller en yrkesroll.
- Tecknet @
- Domänen, inklusive en giltig toppdomän (TLD).
Om det var allt som koden skulle behöva leta efter skulle en typisk JavaScript-regexkontroll förhindra att många dåliga kontakter hamnar i våra listor.
Vanligtvis kan våra e-postadresser innehålla följande tecken:
- Siffror: 0 till 9
- Låga och stora bokstäver: a till z och A till Z
- Punkttecknet [.]: Men inte som första eller sista tecken, och inte heller efter varandra.
Om någon skulle ansöka om att bli upptagen i din e-postlista med något eller några av dessa specialtecken skulle de flesta av oss ifrågasätta om något var fel, och vi skulle ha fel – de är alla tillåtna enligt den nuvarande konventionen.
Regex kontrollerar inget annat än syntaxen.
Utvecklare kanske bara bryr sig om att få giltiga adresser genom ett formulär, men det gör inte vi. Vi behöver veta:
- Finns domänen?
- Finns det en MX-post som visar att domänen har en e-postserver?
- Har e-postadressen ett fungerande e-postkonto?
Alla dessa frågor som får ett nej kommer att få ett hårt nej från oss marknadsförare också. Regex kontrollerar inte detta – endast ett särskilt verktyg för validering av e-postmeddelanden kan visa upp sådana röda flaggor.
Den upptäcker inte tillfälliga och engångsadresser.
Som e-postmarknadsförare är vi mer än medvetna om att många användare skapar falska tillfälliga konton för att dra nytta av ett erbjudande, en kampanj eller en annan situation. Det är ett enkelt sätt att undvika att lägga till oordning i sina befintliga e-postkonton eller att ge bort information om sig själva som de inte vill.
Det är enkelt att skapa en tillfällig e-postadress som en engångslösning. Dessa adresser försvinner ofta inom 10 eller 15 minuter efter att de har skapats, vilket gör dem otroligt lämpliga för ändamålet.
Regex kontrollerar inte dessa. Temporära och engångsadresser klarar alla valideringstester av regex.
Hur ställer man in ett javascript för e-postregex?
Om du är en van utvecklare behöver du förmodligen inte vår grundläggande kunskap om ämnet för att få veta hur det går till, men för dig som har viss erfarenhet av kodning bör det se ut ungefär så här:
funktion 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(”Detta är inte en giltig e-postadress”);
Återge falskt;
}
}
Den del som gör allt det tunga jobbet är den var mailformat linje. Exekveringen och tecknen i den långa raden av kod definierar vad som är tillåtet och vad som inte är tillåtet.
Du kan se de enkla sakerna: A , A , , och sedan specialtecknen i den första lokala delen. +@ dikterar sedan den lokala separatorn och domänseparatorn. Efter @ följer ytterligare en rad instruktioner om vad som är tillåtet i domänavsnittet.
Om du vill ha en mycket djupare inblick i vad som krävs för att implementera en regex-validator, gå till abstract. De har en riktigt bra guide om exakt vad som krävs och är experter när det gäller alla typer av API-tillägg och inkluderingar.
Om ett jobb är värt att göra är det värt att göra det bra – så validera dina listor på bästa möjliga sätt.
Det finns bara ett sätt att se till att dina e-postlistor är i toppskick, och det är att använda ett särskilt verktyg för validering av e-postmeddelanden, som t.ex. Utkastare .
Regex-validering kan leda till att falska e-postadresser hamnar i dina e-postlistor och att giltiga adresser blockeras. När det gäller att lägga till en autentiseringsmetod i dina onlineformulär eller datainsamlingsmetoder föreslår vi andra, mer robusta former av validering.
Att köra dina e-postlistor via en plattform som Bouncer är det bästa sättet att hålla dina listor rena och friska, dina avvisningsfrekvenser låga, din leveransförmåga hög och din avsändarpoäng i toppskick.
Vanliga frågor om Regex för e-postmeddelanden
Vad är en enkel regex för e-postvalidering?
En enkel regex (reguljärt uttryck) för e-postvalidering är en sekvens av tecken som definierar ett sökmönster för e-postadresser. Det kan användas för att kontrollera om en sträng matchar standardformatet för en e-postadress. Det är dock viktigt att notera att en enkel regex kanske inte fångar upp alla ogiltiga e-postadresser och kan tillåta att vissa icke-standardiserade e-postformat passerar igenom.
Hur hjälper regex för e-post att filtrera bort ogiltiga e-postadresser?
Email regex används för att matcha inmatningssträngen (den e-postadress som användaren anger) mot ett specifikt format. Om e-postadressen inte matchar detta format anses den vara ogiltig. Detta kan bidra till att förhindra stavfel, säkerställa datakonsistens och skydda mot vissa typer av injektionsattacker.
Vad är ett blankstegstecken i samband med regex för e-post?
Ett whitespace-tecken i regex för e-postadresser är ett tecken som används för att representera blanksteg, t.ex. mellanslag, tabbar eller radbrytningar. I samband med e-postadresser är blanksteg normalt inte tillåtna, och om de förekommer blir en e-postadress ogiltig.
Vad är en komplex regex för e-post?
En komplex regex för e-post är ett mer detaljerat och exakt reguljärt uttryck som används för validering av e-post. Det kan ta hänsyn till olika aspekter av e-postadresser, t.ex. domännamn, icke-latinska tecken och specifika regler för var vissa tecken får förekomma. Även om det ger en mer grundlig validering kan det också vara svårare att implementera och underhålla.
Hur hanterar regex för e-post icke-latinska tecken och Unicode?
Det kan vara komplicerat att hantera icke-latinska tecken och Unicode i regex för e-post. Vissa e-postsystem tillåter Unicode eller icke-latinska e-postadresser, men de stöds inte av alla. En komplex regex för e-post kan innehålla teckenklasser för att matcha icke-latinska tecken, men det är viktigt att förstå de specifika kraven och begränsningarna för det e-postsystem du arbetar med.
Vilken roll spelar teckenklasser i regex för e-post?
Teckenklasser i regex för e-post definierar en uppsättning tecken som kan matcha varje enskilt tecken i indatasträngen. Teckenklassen [a-z] matchar t.ex. alla små bokstäver på engelska. Teckenklasser kan användas för att ange giltiga tecken för olika delar av en e-postadress.
Vilka är begränsningarna med regex för e-postvalidering?
Även om e-postregex kan fånga upp många vanliga fel i e-postadresser är det inte en fullständig valideringsmetod. Vissa ogiltiga adresser kan fortfarande passera en regex-kontroll, och vissa giltiga adresser kan misslyckas, särskilt om de använder mindre vanliga format eller tecken. För fullständig validering av e-postadresser rekommenderas ofta att man använder valideringstjänster eller skickar ett bekräftelsemeddelande till den angivna adressen.