Kaip patikrinti el. Pašto adresą javascript?

Kaip patikrinti el. Pašto adresą javascript?

3559
05 сент. rinkinys pix0r 05 sept. 2008-09-05 19:10 '08 at 7:10 pm 2008-09-05 19:10
@ 79 atsakymai
  • 1
  • 2
  • 3

Reguliarių išraiškų naudojimas tikriausiai yra geriausias būdas. Čia galite pamatyti daugybę bandymų (paimta iš chromo )

 function validateEmail(email) { var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); } 

Čia pateikiamas reguliarios išraiškos, kuri priima Unicode, pavyzdys:

 var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i; 

Tačiau atminkite, kad neturėtumėte pasikliauti tik „JavaScript“ patvirtinimu. „JavaScript“ gali būti lengvai išjungta. Tai turėtų būti patikrinta ir serverio pusėje.

Pateikiame aukščiau pateiktą veiksmo pavyzdį:

4102
05 сент. Atsakymas pateikiamas sectrean 05 Sep. 2008-09-05 19:15 '08 19:15 pm 2008-09-05 19:15

Tik išsamiai, čia turite kitą reguliarią išraišką RFC 2822

Oficialus standartas yra žinomas kaip RFC 2822 . Jame aprašoma sintaksė, į kurią turi atitikti galiojantys el. Pašto adresai. Jūs galite ( bet jūs neturėtumėte skaityti ) įgyvendinti šią įprastą išraišką:

(?:[a-z0-9!#$%>

(...) Mes gausime daugiau praktinio RFC 2822 įgyvendinimo, jei praleisime sintaksę naudodami dvigubas kabutes ir kvadratinius skliaustelius. Jis vis tiek atitiks 99,99% visų šiuo metu naudojamų el. Pašto adresų.

[a-z0-9!#$%>

Dar vienas pakeitimas, kurį galėtumėte padaryti, yra leisti dviejų raidžių aukščiausio lygio domeną ir tik tam tikrus bendrus aukščiausio lygio domenus. Ši įprastinė išraiška filtruoja netikrus el. Pašto adresus, pvz., asdf@adsf.adsf . Turėsite jį atnaujinti, kai pridedami nauji aukščiausio lygio domenai .

[a-z0-9!#$%>

Taigi, net ir oficialiais standartais, vis dar yra kompromisų. Negalima aklai kopijuoti reguliarių išraiškų iš interneto bibliotekų ar diskusijų forumų. Visada patikrinkite juos pagal savo duomenis ir savo programas.

border=0

Mano dėmesys

663
03 сент. Esteban Küber atsakymas 03 rugsėjis 2009-09-03 17:26 '09 at 17:26 pm 2009-09-03 17:26

Aš šiek tiek modifikavau Jaymon atsakymą žmonėms, norintiems tikrinti paprastą formą:

anystring@anystring.anystring

Įprastinė raiška:

 /\S+@\S+\.\S+/ 

„JavaScript“ funkcijos pavyzdys:

 function validateEmail(email) { var re = /\S+@\S+\.\S+/; return re.test(email); } 
615
09 февр. Atsakymas pateikiamas C. Lee 09 vasaris 2012-02-09 05:22 '12 at 5:22 am 2012-02-09 05:22

Oho, yra daug sunkumų. Jei viskas, ką norite padaryti, yra tiesiog sugauti pačias akivaizdžiausias sintaksės klaidas, norėčiau tai padaryti:

 ^\S+@\S+$ 

Paprastai jis paima pačias akivaizdžiausias vartotojo padarytas klaidas ir užtikrina, kad ši forma iš esmės yra teisinga, o tai yra „JavaScript“ tikrinimo tikslas.

310
08 сент. Atsakymas Jaymon Sep 8 2008-09-08 00:21 '08 at 12:21 2008-09-08 00:21

Ką reikia suprasti antrajame, nuspręsite naudoti reguliarią frazę, kad patikrintumėte el. Paštą. Tai tikriausiai nėra gera idėja . Kai susitaikysite su šiuo klausimu, yra daug įgyvendinimo būdų, kurie gali jums padėti iki pusės, šis straipsnis gerai apibendrina.

Trumpai tariant, vienintelis būdas būti visiškai tikri, kad tai, ką vartotojas įvedė, iš tikrųjų yra el. Be to, visa tai tik atspindi.

308
02 мая '09 в 20:18 2009-05-02 20:18 atsakymą pateikė Paolo Bergantino 02 gegužės 09 d. 20:18 2009-05-02 20:18

Pati HTML5 turi patvirtinimą el. Paštu. Jei jūsų naršyklė palaiko HTML5, galite naudoti šį kodą.

 <form><input type="email" placeholder="me@example.com"> <input type="submit"> </form> 

jsFiddle nuoroda

HTML5 specifikacijos :

Galiojantis el. Pašto adresas yra eilutė, atitinkanti šio ABNF email tipą, kurio simbolių rinkinys yra Unicode.

 email = 1*( atext / "." ) "@" label *( "." label ) label = let-dig [ [ ldh-str ] let-dig ] ; limited to a length of 63 characters by RFC 1034 section 3.5 atext = < as defined in RFC 5322 section 3.2.3 > let-dig = < as defined in RFC 1034 section 3.5 > ldh-str = < as defined in RFC 1034 section 3.5 > 

Šis reikalavimas yra apgalvotas RFC 5322 pažeidimas , kuriame apibrėžiama pernelyg griežtų el. Pašto adresų sintaksė (prieš simbolį „@“), pernelyg neapibrėžta (po „@“ simbolio) ir per silpna (leidžianti naudoti komentarus, tarpą ir kabutes, nepažįstamas daugeliui vartotojų).

Toliau pateikta reguliari išraiška, suderinama su „JavaScript“ ir „Perl“, yra pirmiau pateiktos apibrėžties įgyvendinimas.

 /^[a-zA-Z0-9.!#$%> 
177
17 окт. Anoop atsakymas spalio 17 d 2011-10-17 11:23 '11, 11:23, 2011-10-17 11:23

Radau tai geriausias sprendimas:

 /^[^\s@]+@[^\s@]+\.[^\s@]+$/ 

Jis leidžia naudoti šiuos formatus:

 1. prettyandsimple@example.com 2. very.common@example.com 3. disposable.style.email.with+symbol@example.com 4. other.email-with-dash@example.com  ~ .a "@ example.org 7. "" @ example.org (tarpas tarp kabučių) 8. üñîçøðé@example.com (Unicode simboliai vietinėje dalyje) 9. Unikodo simboliai domeno dalyje (Unicode simboliai domeno dalyje) 10. Pelé@example.com (lotynų kalba) 11. δοκιμή@παράδειγμα.δοκιμή (graikų) 12. 我 買 @ 屋企. 香港 (kinų) 13. 甲 斐 @ 黒 川. 日本 (japonų kalba) 14. Cheburashka @ yashchik-s- opelsinami.rf

Tai aiškiai universalus ir leidžia naudoti visus svarbius tarptautinius simbolius, išlaikant pagrindinį formatą any@anything.anything. Jis blokuoja spragas, kurias techniškai leidžia RFC, tačiau jos yra tokios retos, kad džiaugiuosi galėdamas tai padaryti.

106
21 сент. Atsakymas duotas Andrew 21 rugsėjis. 2015-09-21 04:52 '15 at 4:52 2015-09-21 04:52

Šiuolaikinėse naršyklėse galite naudoti „@Sushil“ atsakymą naudojant „JavaScript“ ir „ DOM“ :

 function validateEmail(value) { var input = document.createElement('input'); input.type = 'email'; input.required = true; input.value = value; return typeof input.checkValidity === 'function' ? input.checkValidity() : /\S+@\S+\.\S+/.test(value); } 

Aš susibūriau pavyzdį smuiku http://jsfiddle.net/boldewyn/2b6d5/ . Kartu su funkcijų aptikimu ir paprastu testavimu iš „ Squirtle Answer“, jis atleidžia jus nuo reguliarių išraiškų žudynių ir neveikia senesnėse naršyklėse.

83
20 дек. Atsakymą pateikė Boldewyn 20 gruodis. 2012-12-20 18:20 '12 18:20 2012-12-20 18:20

„JavaScript“ gali atitikti įprastą išraišką

 emailAddress.match( / some_regex /); 

Čia yra RFC22 reguliarioji raidžių išraiška:

 ^((?>[a-zA-Z\d!#$% "\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$% 7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?< !\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f]) [^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$ 
65
05 сент. Atsakymas, kurį pateikė Ben Scheirman Sep 05 2008-09-05 19:13 '08 at 7:13 pm 2008-09-05 19:13

Tai teisinga RFC822 versija.

 function checkEmail(emailAddress) { var sQtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]'; var sDtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]'; var sAtom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+'; var sQuotedPair = '\\x5c[\\x00-\\x7f]'; var sDomainLiteral = '\\x5b(' + sDtext + '|' + sQuotedPair + ')*\\x5d'; var sQuotedString = '\\x22(' + sQtext + '|' + sQuotedPair + ')*\\x22'; var sDomain_ref = sAtom; var sSubDomain = '(' + sDomain_ref + '|' + sDomainLiteral + ')'; var sWord = '(' + sAtom + '|' + sQuotedString + ')'; var sDomain = sSubDomain + '(\\x2e' + sSubDomain + ')*'; var sLocalPart = sWord + '(\\x2e' + sWord + ')*'; var sAddrSpec = sLocalPart + '\\x40' + sDomain; // complete RFC822 email address spec var sValidEmail = '^' + sAddrSpec + '$'; // as whole string var reValidEmail = new RegExp(sValidEmail); return reValidEmail.test(emailAddress); } 
61
15 апр. Bob van Luijt atsakymas, pateiktas balandžio 15 d 2013-04-15 16:31 '13, 16:31, 2013-04-15 16:31

Teisingas el. Pašto adreso patikrinimas pagal RFC negali būti pasiektas reguliariai naudojant vieną eilutę. Straipsnis su geriausiu sprendimu, kurį radau PHP: „ Kas yra galiojantis el. Pašto adresas? Akivaizdu, kad jis buvo perkeltas į„ Java “. Manau, kad ši funkcija pernelyg sudėtinga perkelti ir naudoti„ JavaScript “.„ JavaScript “/„ node.js “: https : //www.npmjs.com/package/email-addresses .

Tai yra gera praktika patikrinti savo duomenis klientui, bet dukart patikrinkite patikrinimą serveryje. Turint tai omenyje, galite tiesiog patikrinti, ar eilutė atrodo kaip galiojantis el. Pašto adresas kliente, ir atlikite griežtą serverio patikrinimą.

Čia yra „JavaScript“ funkcija, kurią naudoju, norėdami patikrinti, ar eilutė atrodo kaip galiojantis el. Pašto adresas:

 function looksLikeMail(str) { var lastAtPos = str.lastIndexOf('@'); var lastDotPos = str.lastIndexOf('.'); return (lastAtPos < lastDotPos  lastAtPos > 0  str.indexOf('@@') == -1  lastDotPos > 2  (str.length - lastDotPos) > 2); } 

Paaiškinimas:

  • lastAtPos < lastDotPos : Paskutinis @ turi būti prieš paskutinį . kadangi @ negali būti serverio pavadinimo dalis (kiek aš žinau).

  • lastAtPos > 0 : turi būti kažkas prieš paskutinį @ (el. pašto vartotojo vardą).

  • str.indexOf('@@') == -1 : adresas neturėtų būti @@ . Net jei @ pasirodys kaip paskutinis el. Pašto naudotojo vardo simbolis, jis turi būti įtrauktas į kabutes, kad būtų " tarp šio @ ir paskutinio adreso @ “.

  • lastDotPos > 2 : prieš paskutinį tašką turi būti bent trys simboliai, pavyzdžiui, a@b.com .

  • (str.length - lastDotPos) > 2 : po paskutinio taško turi būti pakankamai simbolių, kad (str.length - lastDotPos) > 2 dviejų simbolių domeną. Nesu tikras, kokie skliausteliai reikalingi.

50
02 марта '11 в 14:26 2011-03-02 14:26 atsakymas duotas Miloš Rašić kovo 2 d. 11 val. 14:26 2011-03-02 14:26

Visuose el. Pašto adresuose yra simbolis „ne“ (pvz., @). Patikrinkite šią prielaidą:

 email.indexOf("@") > 0 

Nesijaudinkite nieko sudėtingiau. Net jei galėtumėte tiksliai nustatyti, ar el. Laiškas yra sintaksinis galiojimas RFC, jis jums nesakys, ar jis priklauso jį pateikusiam asmeniui. Tai tikrai svarbu.

Norėdami tai patikrinti, atsiųskite patvirtinimo pranešimą.

48
14 июля '13 в 21:15 2013-07-14 21:15 atsakymą pateikė pulkininkas Panikas liepos 14 d., 13 val., 13:15 PM 2013-07-14 21:15

Jis buvo pavogtas iš http://codesnippets.joyent.com/posts/show/1917

 email = $('email'); filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (filter.test(email.value)) { // Yay! valid return true; } else {return false;} 
40
02 мая '09 в 20:19 2009-05-02 20:19 atsakymą pateikė Adam McKee 02 gegužės 09 d. 20:19 2009-05-02 20:19

Aš tikrai laukiu šios problemos sprendimo. Todėl pakeitiau anksčiau pateiktą el. Pašto autentifikavimo išraišką

  • Originalas
    /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

  • Modifikuota
    /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()\.,;\s@\"]+\.{0,1})+[^<>()\.,;:\s@\"]{2,})$/

siųsti pavyzdžius į „ Wikipedia“ el . pašto adresą .

Ir čia galite pamatyti rezultatą.

2019

Ar tai:

 [a-zA-Z0-9!#$%> 

Kodėl? Tai grindžiama RFC 2822 , kuris yra standartinis, turi būti laikomasi visų el. Pašto adresų.

Dažnai, kai saugoju el. Pašto adresus į duomenų bazę, aš jas padarysiu mažomis raidėmis, o praktiškai reguliarios išraiškos paprastai yra pažymėtos nejautriu atveju. Tokiais atvejais yra šiek tiek trumpesnis:

 [a-z0-9!#$%> 

Čia yra pavyzdys, kaip jis gali būti naudojamas „JavaScript“ (nesuprantamas „ i ženklas pabaigoje).

 var emailCheck=/^[a-z0-9!#$% console.log( emailCheck.test('some.body@domain.co.uk') ); 

Pastaba :
Techniniu požiūriu, kai kuriuose el. Laiškuose skyriuje gali būti kabučių prieš @ simbolį, o paketų viduje yra pabėgėlių simboliai (todėl jūsų pašto vartotojas gali būti nemalonus ir jame gali būti tokių kaip @ ir "..." jei jis parašytas kabutėse). NIEKADA NEGALIMA! Jis yra pasenęs. Tačiau jis įtrauktas į šį RFC 2822 standartą ir čia praleidžiamas.

Papildoma informacija: http : //www. regular-expressions.info/email.html.

26
01 нояб. atsakymą pateikė Ryan Taylor 01 lapkričio. 2012-11-01 17:06 '12 at 17:06 2012-11-01 17:06

Jei norite patikrinti, ar įvesties eilutė nėra tikrinama, ar tai nėra el. Tai pernelyg sudėtinga ir neapima visų atvejų.

Dabar, kadangi galite padengti tik 90% atvejų, parašykite kažką panašaus:

 function isPossiblyValidEmail(txt) { return txt.length > 5  txt.indexOf('@')>0; } 

Galite tai paaiškinti. Pavyzdžiui, galioja „aaa @“. Bet apskritai jūs gaunate esminį. Ir neužsukite ... Paprastas 90% sprendimas yra geresnis nei 100% sprendimas, kuris neveikia.

Pasauliui reikia paprastesnio kodo ...

21
19 дек. atsakymas pateikiamas Zo72 19 dec. 2011-12-19 21:39 '11, 21:39, 2011-12-19 21:39

Tiesiog patikrinkite, ar įvestas el. Pašto adresas yra galiojantis arba nenaudojamas HTML.

 <input type="email"/> 

Nereikia rašyti funkcijos patikrinti.

18
25 июня '13 в 9:30 2013-06-25 09:30 atsakymą pateikė vartotojo2496033 birželio 25 d. 13:30 val. 2013-06-25 09:30

Štai kaip patvirtinimo mazgas veikia:

 /^(?:[\w\!\#\$\%\> 
17
11 сент. atsakymas pera 11 Sep 2013-09-11 05:21 '13, 5:21 am 2013-09-11 05:21

Sunku gauti 100% elektroninio pašto tikrinimo priemonę. Vienintelis realus būdas išspręsti šią problemą yra siųsti el. Laišką į jūsų paskyrą. Tačiau yra keletas pagrindinių patikrinimų, kurie padės užtikrinti, kad jūs gaunate kažką protingo.

Kai kurie dalykai, kuriuos reikia patobulinti:

Vietoj „ RegExp tiesiog pabandykite rašyti „ regexp taip:

 if (reg.test(/@/)) 

Antra, įsitikinkite, kad taškas yra po @ ženklo ir įsitikinkite, kad tarp @ ir taškų yra simbolių.

14
02 мая '09 в 20:23 2009-05-02 20:23 atsakymą pateikė jacobangelis 02 gegužės 09 d. 20:23 2009-05-02 20:23

Geriausia reguliari raiška, atitinkanti RFC5322

[a-z0-9!#$%>

12
22 дек. Atsakymą pateikė „ Prabhat Kasera “ gruodžio 22 d. 2016-12-22 10:44 '16 at 10:44 2016-12-22 10:44

Sprendimas, kuris nepatvirtina ALD buvimo, yra neišsami.

Beveik visi atsakymai į šiuos klausimus siūlo „Regex“ naudoti el. Pašto adresus. Manau, kad „Regex“ tinka tik pradiniam patikrinimui. Atrodo, kad el. Pašto adresų patvirtinimas iš tikrųjų yra dvi atskiros problemos:

1- El. Laiško formato tikrinimas: Įsitikinkite, kad el. Laiškas atitinka RFC 5322 el. Laiškų formatą ir modelį ir ar TLD tikrai egzistuoja. Čia rasite visų galiojančių ALD sąrašą.

Pvz., Nors adresas pavyzdys@example.ccc bus perduodamas per įprastą išraišką, tai nėra galiojantis el. Pašto adresas, nes ccc nėra IANA aukščiausio lygio domenas.

2. Įsitikinkite, kad elektroninis paštas tikrai egzistuoja: vienintelė galimybė yra siųsti el. Laiškus vartotojams .

12
28 дек. bman atsakymas 28 dec. 2016-12-28 05:51 '17 at 5:51 2016-12-28 05:51

„Regex“ atnaujinimas 2018! pabandykite

 let val = 'email@domain.com'; if(/^[a-z0-9][a-z0-9-_\.]+@([az]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\.[a-z0-9]{2,10}(?:\.[az]{2,10})?$/.test(val)) { console.log('passed'); } 

pilna versija

 // export const emailValid = (val:string):boolean => /^[a-z0-9][a-z0-9-_\.]+@([az]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\.[a-z0-9]{2,10}(?:\.[az]{2,10})?$/.test(val); 

Daugiau informacijos https://git.io/vhEfc

12
06 февр. Atsakymą pateikė Juan Pablo 06 vasaris. 2018-02-06 23:42 '18, 11:42 pm 2018-02-06 23:42

Naudokite šį kodą savo patvirtinimo funkcijos viduje:

 var emailID = document.forms["formName"]["form element id"].value; atpos = emailID.indexOf("@"); dotpos = emailID.lastIndexOf("."); if (atpos < 1 || ( dotpos - atpos < 2 )) { alert("Please enter correct email ID") return false; } 

Taip pat galite naudoti jQuery . Vidaus taisyklės apibrėžia:

 eMailId: { required: true, email: true } 
12
29 нояб. Atsakymas pateikiamas „ Orchid“ lapkričio 29 d 2013-11-29 15:26 '13, 15:26 2013-11-29 15:26

Skirtingai nuo squirtle, čia yra išsamus sprendimas, tačiau jis puikiai atlieka tinkamą el. Laiškų patvirtinimą:

 function isEmail(email) { return /^((([az]|\d|[!#\$% } 

Naudokite:

 if (isEmail('youremail@yourdomain.com')){ console.log('This is email is valid'); } 
11
06 июня '12 в 2:41 2012-06-06 02:41 Atsakymą pateikė Steve Chan birželio 12 d. 12:41 2012-06-06 02:41

Matyt, tai yra:

 /^([\w\!\#$\%\> 

Iš „ http://fightingforalostcause.net/misc/2006/compare-email-regex.php“ įtraukta nuo spalio 1 d.

Bet, žinoma, tai ignoruoja internacionalizaciją.

11
01 окт. Atsakymas į Félix Saparelli spalio 01 d 2010-10-01 12:37 '10, 12:37, 2010-10-01 12:37

Čia pateikiama labai gera diskusija apie tai, kaip naudoti reguliarias išraiškas elektroninio pašto adresams patikrinti; " El. Pašto palyginimas su reguliarios išraiškos čekiu

Čia yra dabartinė viršutinė „JavaScript“ suderinama viršutinė išraiška, skirta nuorodoms:

 /^[-a-z0-9~!$%^> 
10
29 мая '10 в 1:05 2010-05-29 01:05 atsakymą pateikė Ericas Schoonover, gegužės 29 d., 10 d., 1:05 2010-05-29 01:05

Mano reguliarios išraiškos žinios nėra tokios geros. Todėl pirmą kartą patikrinu bendrą sintaksę naudojant paprastą reguliarią išraišką ir tada patikrinkite daugiau specifinių parametrų, naudojant kitas funkcijas. Galbūt tai nėra geriausias techninis sprendimas, tačiau šiuo atveju aš tapo lankstesnis ir greitesnis.

Dažniausiai pasitaikančios klaidos yra spragos (ypač pradžioje ir pabaigoje) ir kartais dvigubas taškas.

 function check_email(val){ if(!val.match(/\S+@\S+\.\S+/)){ // Jaymon / Squirtle solution // Do something return false; } if( val.indexOf(' ')!=-1 || val.indexOf('..')!=-1){ // Do something return false; } return true; } check_email('check@thiscom'); // Returns false check_email('check@this..com'); // Returns false check_email(' check@this.com'); // Returns false check_email('check@this.com'); // Returns true 
10
15 апр. Atsakyti Linkmichiel 15 balandžio. 2013-04-15 14:53 '13, 14:53, 2013-04-15 14:53
 <form name="validation" onSubmit="return checkbae()"> Please input a valid email address:<br /> <input type="text" size=18 name="emailcheck"> <input type="submit" value="Submit"> </form> <script > 
9
31 янв. Atsakymas pateikiamas Tugrul sausio 31 d 2013-01-31 12:39 '13, 12:39, 2013-01-31 12:39

Standartinė Wikipedia pašto sintaksė:

https://en.wikipedia.org/wiki/Email_address#Examples https://fr.wikipedia.org/wiki/Adresse_%C3%A9lectronique#Syntaxe_exacte

 function validMail(mail) { return /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()\.,;\s@\"]+\.{0,1})+([^<>()\.,;:\s@\"]{2,}|[\d\.]+))$/.test(mail); } // VALID MAILS validMail('Abc@example.com') // Return true validMail('Abc@example.com.') // Return true validMail('Abc@10.42.0.1') // Return true validMail('user@localserver') // Return true validMail('Abc.123@example.com') // Return true validMail('user+mailbox/department=shipping@example.com') // Return true validMail('"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com') // Return true validMail('!#$% // Return true validMail('"()<>[]:,;@\\\"!#$% ~.a"@example.org') // Return true validMail('"Abc@def"@example.com') // Return true validMail('"Fred Bloggs"@example.com') // Return true validMail('"Joe.\\Blow"@example.com') // Return true validMail('Loïc.Accentué@voilà.fr') // Return true validMail('" "@example.org') // Return true validMail('user@[IPv6:2001:DB8::1]') // Return true // INVALID MAILS validMail('Abc.example.com') // Return false validMail('A@b@c@example.com') // Return false validMail('a"b(c)d,e:f;g<h>i[j\k]l@example.com') // Return false validMail('just"not"right@example.com') // Return false validMail('this is"not\allowed@example.com') // Return false validMail('this\ still\"not\\allowed@example.com') // Return false validMail('john..doe@example.com') // Return false validMail('john.doe@example..com') // Return false 

Rodyti šį testą: https://regex101.com/r/LHJ9gU/1

8
21 июня '17 в 12:10 2017-06-21 12:10 atsakymas suteikiamas Liberatui birželio 21 d. 17:12 12:10 2017-06-06 12:10

Nuolatinė išraiška, kurią „Microsoft“ teikia „ ASP.NET MVC“ :

 /^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[az]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/ 

Ką aš skelbiu čia, jei jis klaidingas - nors jis visada buvo tobulas mano poreikiams.

8
04 дек. Neil Thompson atsakymas, pateiktas gruodžio 4 d. 2013-12-04 13:44 '13, 13:44 2013-12-04 13:44
  • 1
  • 2
  • 3