JavaScript'te bir e-posta adresi nas─▒l do─črulan─▒r


Al─▒nan cevaba git


Bir e-posta adresi JavaScript'te nas─▒l do─črulanabilir?


4033









Cevap say─▒s─▒n─▒ say: 30






D├╝zenli ifadeler kullanmak muhtemelen en iyi yoldur. Burada bir s├╝r├╝ test g├Ârebilirsiniz ( kromdan al─▒nm─▒┼č )

 function validateEmail(email) {
    var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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());
}
 

Unicode'u kabul eden d├╝zenli ifade ├Ârne─či:

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

Ancak birinin yaln─▒zca JavaScript do─črulamas─▒na g├╝venmemesi gerekti─čini unutmay─▒n. JavaScript kolayca devre d─▒┼č─▒ b─▒rak─▒labilir. Bu, sunucu taraf─▒nda da do─črulanmal─▒d─▒r.

─░┼čte eylemde yukar─▒dakilere bir ├Ârnek:

 function validateEmail(email) {
  var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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(email);
}

function validate() {
  var $result = $("#result");
  var email = $("#email").val();
  $result.text("");

  if (validateEmail(email)) {
    $result.text(email + " is valid :)");
    $result.css("color", "green");
  } else {
    $result.text(email + " is not valid :(");
    $result.css("color", "red");
  }
  return false;
}

$("#validate").on("click", validate); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <p>Enter an email address:</p>
  <input id='email'>
  <button type='submit' id='validate'>Validate!</button>
</form>

<h2 id='result'></h2> 


4580







Sadece b├╝t├╝nl├╝k i├žin, burada ba┼čka bir RFC 2822 uyumlu regex var

Resmi standart RFC 2822 olarak bilinir . Ge├žerli e-posta adreslerinin uymas─▒ gereken s├Âzdizimini a├ž─▒klar. Bu d├╝zenli ifadeyle uygulayabilirsiniz ( ancak okumamal─▒s─▒n─▒z - okumal─▒s─▒n─▒z ):

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\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])+)\])

(...) ├çift t─▒rnak ve k├Â┼čeli parantez kullanarak s├Âzdizimini ihmal edersek, RFC 2822'nin daha pratik bir uygulamas─▒n─▒ elde ederiz. Bug├╝n hala kullan─▒mda olan t├╝m e-posta adreslerinin% 99,99'una e┼čle┼čecektir.

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

Yapabilece─činiz ba┼čka bir de─či┼čiklik, herhangi bir iki harfli ├╝lke kodunun ├╝st d├╝zey etki alan─▒na ve yaln─▒zca belirli genel ├╝st d├╝zey etki alanlar─▒na izin vermektir. Bu regex kukla e-posta adreslerini filtreler [email protected] . Sen yeni ├╝st d├╝zey etki eklendik├že g├╝ncellemeniz gerekecektir .

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b

Bu y├╝zden, resmi standartlar─▒ takip ederken bile, hala yap─▒lmas─▒ gereken de─či┼čimler var. D├╝zenli ifadeleri ├ževrimi├ži k├╝t├╝phanelerden veya tart─▒┼čma forumlar─▒ndan a├ž─▒k├ža kopyalamay─▒n. Bunlar─▒ daima kendi verileriniz ├╝zerinde ve kendi uygulamalar─▒n─▒zla test edin.

Vurgu madeni


721







Jaymon'un ┼ču ┼čekilde ger├žekten basit do─črulama isteyenlere y├Ânelik yan─▒t─▒n─▒ biraz de─či┼čtirdim:

[email protected]

D├╝zenli ifade:

 /\[email protected]\S+\.\S+/
 

├ľrnek JavaScript i┼člevi:

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

717







Vay, burada ├žok fazla karma┼č─▒kl─▒k var. Yapman─▒z gereken tek ┼čey, en belirgin s├Âzdizimi hatalar─▒n─▒ yakalamaksa, ┼č├Âyle bir ┼čey yapar─▒m:

 ^\[email protected]\S+$
 

Genellikle, kullan─▒c─▒n─▒n yapt─▒─č─▒ en belirgin hatalar─▒ bulur ve formun ├žo─čunlukla do─čru oldu─čunu garanti eder, bu da JavaScript do─črulamas─▒n─▒n ne oldu─čudur.


345







E-postalar─▒ do─črulamak i├žin normal bir ifade kullanmaya karar verdi─činiz an─▒ anlaman─▒z gereken bir ┼čey var: Muhtemelen iyi bir fikir de─čildir . Bununla ba┼ča ├ž─▒kmaya ba┼člad─▒─č─▒n─▒zda, sizi yar─▒ yolda b─▒rakabilecek bir├žok uygulama var, bu yaz─▒ onlar─▒ g├╝zelce ├Âzetliyor.

Ancak, k─▒sacas─▒, kesinlikle, olumlu bir ┼čekilde, kullan─▒c─▒n─▒n girdi─či ┼čeyin asl─▒nda bir e-posta ger├žekten bir e-posta g├Ândermek ve ne olaca─č─▒n─▒ g├Ârmek oldu─čundan emin olman─▒n tek yolu. Bunun d─▒┼č─▒nda hepsi sadece tahmindir.


322







HTML5'in kendisi e-posta do─črulamas─▒na sahip. Taray─▒c─▒n─▒z HTML5'i destekliyorsa, a┼ča─č─▒daki kodu kullanabilirsiniz.

 <form><input type="email" placeholder="[email protected]" required>
    <input type="submit">
</form>
 

jsFiddle ba─člant─▒s─▒

G├Ânderen HTML5 spec :

Bir ge├žerli bir e-posta adresi ile e┼čle┼čen bir dize email a┼ča─č─▒daki ABNF ├╝retimini, karakter k├╝mesi Unicode oldu─čunu.

 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 >
 

Bu gereksinim, ayn─▒ anda ├žok kat─▒ ("@" karakterinden ├Ânce), ├žok belirsiz ("@" karakterinden sonra) ve ├žok gev┼ček (yorum yap─▒lmas─▒na izin veren) e-posta adreslerinin s├Âzdizimini tan─▒mlayan kas─▒tl─▒ bir RFC 5322 ihlalidir . , bo┼čluk karakterleri ve al─▒nt─▒lanan dizeler ├žo─ču kullan─▒c─▒n─▒n bilmedi─či y├Ântemlerle burada pratik olarak kullan─▒l─▒r.

A┼ča─č─▒daki JavaScript ve Perl uyumlu normal ifade, yukar─▒daki tan─▒m─▒n bir uygulamas─▒d─▒r.

 /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
 

199







Bunu en iyi ├ž├Âz├╝m olarak buldum:

 /^[^\[email protected]][email protected][^\[email protected]]+\.[^\[email protected]]+$/
 

A┼ča─č─▒daki formatlara izin verir:

1. [email protected]
2. [email protected]
3. tek kullan─▒ml─▒[email protected]
4. di─č[email protected]
9. #!$%&'*+-/=?^_`{#|[email protected]
6. "() []:,; @ \\\"! # #%% & '* + - / =? ^ _ `{} | ~ .A "@ example.org
7. "" @ example.org (t─▒rnak i┼čaretleri aras─▒ndaki bo┼čluk)
8. ├╝├▒├«├ž├Ş├░├ę@example.com (yerel k─▒s─▒mdaki Unicode karakterler)
9. ├╝├▒├«├ž├Ş├░├ę@├╝├▒├«├ž├Ş├░├ę.com (Etki alan─▒ b├Âl├╝m├╝nde Unicode karakterler)
10. Pel├ę@example.com (Latince)
11. ╬┤╬┐╬║╬╣╬╝╬«@¤Ç╬▒¤ü╬Č╬┤╬Á╬╣╬│╬╝╬▒.╬┤╬┐╬║╬╣╬╝╬« (Yunanca)
12. ŠłĹ Ŕ▓Ě @ ň▒őń╝ü. ÚŽÖŠŞ» (├çince)
13. šö▓ ŠľÉ @ Ú╗ĺ ňĚŁ. ŠŚąŠťČ (Japonca)
14. ĐçđÁđ▒ĐâĐÇđ░Đłđ║đ░@ĐĆĐëđŞđ║-Đü-đ░đ┐đÁđ╗ĐîĐüđŞđŻđ░đ╝đŞ.ĐÇĐä (Kiril)

A├ž─▒k├ža ├žok y├Ânl├╝d├╝r ve t├╝m ├Ânemli uluslararas─▒ karakterlere izin verirken, yine de temel ┼čeyleri herhangi bir formatta uygular. Teknik olarak RFC taraf─▒ndan izin verilen alanlar─▒ kapatacak, ancak bunu yapmaktan mutlu oldu─čum i├žin ├žok nadirdir.


124







Modern taray─▒c─▒larda @ Sushil'in saf JavaScript ve DOM ile verdi─či cevab─▒n ├╝st├╝ne in┼ča edebilirsiniz :

 function validateEmail(value) {
  var input = document.createElement('input');

  input.type = 'email';
  input.required = true;
  input.value = value;

  return typeof input.checkValidity === 'function' ? input.checkValidity() : /\[email protected]\S+\.\S+/.test(value);
}
 

Keman─▒n i├žinde bir ├Ârnek verdim http://jsfiddle.net/boldewyn/2b6d5/ . ├ľzellik tespiti ve Squirtle'n─▒n Cevab─▒ndaki ├ž─▒plak kemik do─črulamas─▒ ile birle┼čtirildi─činde , sizi normal ifade katliam─▒ndan kurtar─▒r ve eski taray─▒c─▒lar─▒ etkilemez.


92







JavaScript normal bir ifadeyle e┼čle┼čebilir:

 emailAddress.match( / some_regex /);
 

─░┼čte e-postalar i├žin bir RFC22 d├╝zenli ifadesi:

 ^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*
"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x
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)>)$
 

68







Bu do─čru RFC822 s├╝r├╝m├╝d├╝r.

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

66







T├╝m e-posta adresleri 'at' (yani @) sembol├╝ i├žerir. Gerekli durumu test edin:

 email.indexOf("@") > 0
 

Daha karma┼č─▒k bir ┼čeyle u─čra┼čma. Bir e-postan─▒n RFC-s├Âzdizimsel olarak ge├žerli olup olmad─▒─č─▒n─▒ m├╝kemmel bir ┼čekilde belirleseniz bile, bu size onu sa─člayan ki┼čiye ait olup olmad─▒─č─▒n─▒ s├Âylemez. Ger├žekten ├Ânemli olan bu.

Bunu test etmek i├žin bir do─črulama mesaj─▒ g├Ânderin.


56







E-posta adresinin RFC'lere uygun olarak do─čru ┼čekilde do─črulanmas─▒, tek sat─▒rl─▒k d├╝zenli ifadeyle elde edilebilecek bir ┼čey de─čildir. PHP'de buldu─čum en iyi ├ž├Âz├╝m├╝ i├žeren bir makale Ge├žerli bir e-posta adresi nedir? . A├ž─▒k├žas─▒, Java'ya ta┼č─▒nd─▒. Fonksiyonun JavaScript'te ta┼č─▒nmas─▒ ve kullan─▒lmas─▒ i├žin ├žok karma┼č─▒k oldu─čunu d├╝┼č├╝n├╝yorum. JavaScript / node.js ba─člant─▒ noktas─▒: https://www.npmjs.com/package/email-addresses .

─░yi bir uygulama, verilerinizi istemcide do─črulamak, ancak sunucuda do─črulamay─▒ iki kez kontrol etmektir. Bunu ak─▒lda tutarak, bir dizginin istemcide ge├žerli bir e-posta adresi gibi g├Âr├╝n├╝p g├Âr├╝nmedi─čini kontrol edebilir ve sunucu ├╝zerinde s─▒k─▒ bir kontrol yapabilirsiniz.

─░┼čte bir dize ge├žerli bir posta adresi gibi g├Âr├╝n├╝yor olup olmad─▒─č─▒n─▒ kontrol etmek i├žin kulland─▒─č─▒m JavaScript i┼člevi:

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

A├ž─▒klama:

  • lastAtPos < lastDotPos : @ Sonuncusu . ├Âncekinden ├Ânce olmal─▒d─▒r ├ž├╝nk├╝ @ sunucu ad─▒n─▒n bir par├žas─▒ olamaz (bildi─čim kadar─▒yla).

  • lastAtPos > 0 : En sondan ├Ânce bir ┼čey olmal─▒ (e-posta kullan─▒c─▒ ad─▒) @ .

  • str.indexOf('@@') == -1 : Adresde hi├ž olmamal─▒d─▒r @@ . @ E-posta kullan─▒c─▒ ad─▒ndaki son karakter olarak g├Âr├╝nse bile , al─▒nt─▒ " yap─▒lmas─▒ gerekir @ ve @ bu adresteki adresteki son adreste olur.

  • lastDotPos > 2 : Son noktadan ├Ânce en az ├╝├ž karakter olmal─▒, ├Ârne─čin [email protected] .

  • (str.length - lastDotPos) > 2 : ─░ki noktadan etki alan─▒ olu┼čturmak i├žin son noktadan sonra yeterli karakter bulunmal─▒d─▒r. Desteklerin gerekli olup olmad─▒─č─▒ndan emin de─čilim.


55







Bu, http://codesnippets.joyent.com/posts/show/1917 adresinden ├žal─▒nm─▒┼č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;}
 

44







Bu sorunu ├ž├Âzmek i├žin sab─▒rs─▒zlan─▒yorum. Bu y├╝zden yukar─▒daki e-posta do─črulama normal ifadesini de─či┼čtirdim

Vikipedi e-posta adresindeki ├Ârnekleri iletmek i├žin .

Ve sonucu burada g├Ârebilirsiniz .


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


38







Bunu yap:

 [a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?
 

Niye ya? Standart T├ťM e-posta adreslerine uymas─▒ gereken RFC 2822'ye dayanmaktad─▒rhttps://www.ietf.org/rfc/rfc2822.txt . Ve neden "basit" bir┼čeyle u─čra┼čt─▒─č─▒n─▒zdan emin de─čilim ... yine de kopyalay─▒p yap─▒┼čt─▒racaks─▒n─▒z;)

Genellikle e-posta adreslerini veritaban─▒nda saklarken, onlar─▒ k├╝├ž├╝k harf haline getiririm ve pratikte regex'ler genellikle b├╝y├╝k / k├╝├ž├╝k harfe duyars─▒z olarak i┼čaretlenebilir. Bu durumlarda, bu biraz daha k─▒sad─▒r:

 [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
 

─░┼čte JavaScript'te kullan─▒ld─▒─č─▒na bir ├Ârnek ( i sonunda b├╝y├╝k harf duyars─▒z bayrak olan).

 var emailCheck=/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
console.log( emailCheck.test('[email protected]') );
 

Not :
Teknik olarak, baz─▒ e-postalar, al─▒nt─▒lar─▒n i├žinde @ ka├ž─▒┼č karakterleri bulunan sembolden ├Ânceki b├Âl├╝mdeki al─▒nt─▒lar─▒ i├žerebilir (b├Âylece e-posta kullan─▒c─▒n─▒z i─čren├ž olabilir ve t─▒rnak i┼čaretleri i├žinde yaz─▒ld─▒─č─▒ s├╝rece @ ve "..." gibi ┼čeyler i├žerebilir ). NOBODY BU H─░├ç! Bu modas─▒ ge├žmi┼č. Ancak, ger├žek RFC 2822 standard─▒na dahil edilmi┼čtir ve burada atlanm─▒┼čt─▒r.

Daha fazla bilgi: http://www.regular-expressions.info/email.html


37







Bir giri┼č dizesini onaylamak i├žin normal ifadeler kullanmamal─▒s─▒n─▒z, bunun bir e-posta olup olmad─▒─č─▒n─▒ kontrol edin. ├çok karma┼č─▒k ve t├╝m vakalar─▒ kapsam─▒yor.

┼×imdi, davalar─▒n sadece% 90'─▒n─▒ kar┼č─▒layabildi─činiz i├žin, ┼č├Âyle bir ┼čey yaz─▒n:

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

─░yile┼čtirebilirsin. ├ľrne─čin, 'aaa @' ge├žerlidir. Ama genel olarak ├Âz├╝ al─▒rs─▒n. Ve ba┼čka yere gitme ... Basit bir% 90'l─▒k ├ž├Âz├╝m i┼če yaramaz olan% 100'l├╝k bir ├ž├Âz├╝mden daha iyidir.

D├╝nyan─▒n daha basit kodlara ihtiyac─▒ var ...


23







Girdi─činiz e-posta adresinin ge├žerli olup olmad─▒─č─▒n─▒ kontrol edin, HTML kullanm─▒yorsan─▒z.

 <input type="email"/>
 

Do─črulama i├žin bir fonksiyon yazman─▒za gerek yoktur.


22







Bu nas─▒l d├╝─č├╝m-do─črulay─▒c─▒ yapar:

 /^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~][email protected](?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/
 

19







Bir e-posta do─črulay─▒c─▒y─▒% 100 do─čru elde etmek zor. Bunu d├╝zeltmenin tek ger├žek yolu, hesaba bir test e-postas─▒ g├Ândermek olacakt─▒r. Bununla birlikte, makul bir ┼čey ald─▒─č─▒n─▒zdan emin olman─▒za yard─▒mc─▒ olacak birka├ž temel kontrol vard─▒r.

Geli┼čtirilmesi gereken baz─▒ ┼čeyler:

Yeni yerine RegExp , sadece ┼č├Âyle yazmaya ├žal─▒┼č─▒n regexp :

 if (reg.test(/@/))
 

─░kinci olarak, i┼čaretin arkas─▒na bir periyot geldi─činden emin olmak i├žin kontrol edin @ ve @ s ile periyotlar aras─▒nda karakter oldu─čundan emin olun .


16







Do─črulama i┼člevinizde bu kodu kullan─▒n:

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

Ba┼čka jQuery kullanabilirsiniz . ─░├ž kurallar tan─▒mlay─▒n:

 eMailId: {
    required: true,
    email: true
}
 

14







TLD'nin varl─▒─č─▒n─▒ kontrol etmeyen bir ├ž├Âz├╝m eksik.

Bu sorular─▒n hemen hemen t├╝m cevaplar─▒, e-posta adreslerini do─črulamak i├žin Regex'in kullan─▒lmas─▒n─▒ ├Ânerir. Bence Regex sadece basit bir do─črulama i├žin iyi. E-posta adreslerinin kontrol do─črulamas─▒n─▒n asl─▒nda iki ayr─▒ sorun oldu─ču g├Âr├╝l├╝yor:

1- E-posta format─▒n─▒n do─črulanmas─▒: E-postan─▒n RFC 5322'deki e-postalar─▒n bi├žimine ve bi├žimine uygun olup olmad─▒─č─▒ndan ve TLD'nin ger├žekten mevcut olup olmad─▒─č─▒ndan emin olun. Ge├žerli t├╝m TLD'lerin bir listesini burada bulabilirsiniz .

├ľrne─čin, adres [email protected] regex'i ge├žmesine ra─čmen, ge├žerli bir e-posta ccc de─čil , ├ž├╝nk├╝ IANA taraf─▒ndan ├╝st d├╝zey bir etki alan─▒ de─čil.

2- emin olma eposta ger├žekte var: Bu i┼č i├žin, tek se├ženek olan bir e-posta kullan─▒c─▒lar─▒ g├Ândermek .


13







Regex 2018 g├╝ncellemesi! bunu dene

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

yaz─▒m hatas─▒ s├╝r├╝m├╝ tamamland─▒

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

daha fazla bilgi https://git.io/vhEfc


13







E-posta adresini do─črulamak i├žin regex

 [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])+
 

13







E-posta adreslerini do─črulamak i├žin normal ifadeleri kullanma hakk─▒nda ├žok iyi bir tart─▒┼čma; " Normal ─░fadeleri Do─črulayan E-posta Adresini Kar┼č─▒la┼čt─▒rma "

Referans amac─▒yla ┼ču anki en ├╝st d├╝zey ifade, yani JavaScript uyumludur:

 /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i
 

12







G├Âr├╝n├╝┼če g├Âre, i┼čte bu:

 /^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~][email protected]((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i
 

Al─▒nd─▒─č─▒ http://fightingforalostcause.net/misc/2006/compare-email-regex.php Eki 1 '10 tarihinde.

Fakat elbette uluslararas─▒la┼čmay─▒ g├Ârmezden geliyor.


12







F─▒┼čk─▒rtma aksine , i┼čte karma┼č─▒k bir ├ž├Âz├╝m, ancak d├╝zg├╝n e-postalar─▒ do─črulamak i├žin g├╝├žl├╝ bir i┼č yap─▒yor:

 function isEmail(email) { 
    return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(email);
} 
 

├ľyle kullan─▒n:

 if (isEmail('[email protected]')){ console.log('This is email is valid'); }
 

12







D├╝zenli ifadeler hakk─▒ndaki bilgim o kadar iyi de─čil. Bu nedenle, genel s├Âzdizimini ├Ânce basit bir d├╝zenli ifade ile kontrol ediyorum ve daha sonra di─čer fonksiyonlarla daha belirli se├ženekleri kontrol ediyorum. Bu en iyi teknik ├ž├Âz├╝m olmayabilir, ancak bu yolla daha esnek ve daha h─▒zl─▒y─▒m.

Kar┼č─▒la┼čt─▒─č─▒m en yayg─▒n hatalar bo┼čluklar (├Âzellikle ba┼č─▒nda ve sonunda) ve bazen ├žift nokta.

 function check_email(val){
    if(!val.match(/\[email protected]\S+\.\S+/)){ // Jaymon's / Squirtle's solution
        // Do something
        return false;
    }
    if( val.indexOf(' ')!=-1 || val.indexOf('..')!=-1){
        // Do something
        return false;
    }
    return true;
}

check_email('[email protected]'); // Returns false
check_email('[email protected]'); // Returns false
check_email(' [email protected]'); // Returns false
check_email('[email protected]'); // Returns true
 

11







 <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 language="JavaScript1.2">
    var testresults
    function checkemail(){
        var str = document.validation.emailcheck.value
        var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
        if (filter.test(str))
            testresults = true
        else {
            alert("Please input a valid email address!")
            testresults = false
        }
        return (testresults)
    }
</script>

<script>
    function checkbae(){
        if (document.layers || document.getElementById || document.all)
            return checkemail()
        else
            return true
    }
</script>
 

10







─░├žinde Microsoft taraf─▒ndan sa─članan d├╝zenli ifade ASP.NET MVC oldu─čunu

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

Hangi hata varsa diye buraya yaz─▒yorum - her zaman ihtiya├žlar─▒m i├žin m├╝kemmel olsa da.


8







Wikipedia standart posta s├Âzdizimi:

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

 function validMail(mail)
{
    return /^(([^<>()\[\]\.,;:\[email protected]\"]+(\.[^<>()\[\]\.,;:\[email protected]\"]+)*)|(\".+\"))@(([^<>()\.,;\[email protected]\"]+\.{0,1})+([^<>()\.,;:\[email protected]\"]{2,}|[\d\.]+))$/.test(mail);
}

// VALID MAILS

validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('user+mailbox/[email protected]') // Return true
validMail('"very.(),:;<>[]\".VERY.\"[email protected]\\ \"very\".unusual"@strange.example.com') // Return true
validMail('!#$%&\'*+-/=?^_`.{|}[email protected]') // Return true
validMail('"()<>[]:,;@\\\"!#$%&\'-/=?^_`{}| ~.a"@example.org') // Return true
validMail('"[email protected]"@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('[email protected][IPv6:2001:DB8::1]') // Return true

// INVALID MAILS

validMail('Abc.example.com') // Return false
validMail('[email protected]@[email protected]') // Return false
validMail('a"b(c)d,e:f;g<h>i[j\k][email protected]') // Return false
validMail('just"not"[email protected]') // Return false
validMail('this is"not\[email protected]') // Return false
validMail('this\ still\"not\\[email protected]') // Return false
validMail('[email protected]') // Return false
validMail('[email protected]') // Return false
 

Bu testi g├Âster: https://regex101.com/r/LHJ9gU/1


8



─░lgili yay─▒nlar


Normal bir ifade kullanarak bir e-posta adresini nas─▒l do─črular─▒m?

Bir e-posta adresini h─▒zl─▒ca nas─▒l do─črular─▒m?

JavaScript'ten nas─▒l e-posta g├Ânderilir?

PHP'de bir e-posta adresi nas─▒l do─črulan─▒r

PHP'de bir E-postay─▒ nas─▒l do─črular─▒m?

Bir IPv4 adresini C# tamsay─▒ya d├Ân├╝┼čt├╝rmek nas─▒l?

Veritaban─▒ndaki bir e-posta adresi i├žin en uygun uzunluk nedir?

.Net'te yeni g├╝venlik politikalar─▒na g├Âre nas─▒l e-posta g├Ânderilir?

Bir dizgenin PHP'de bir e-posta adresi olup olmad─▒─č─▒n─▒ kontrol edin

Javascript'te bo┼č bir s├Âzl├╝k nas─▒l e┼čle┼čtirilir?

Etiketle ilgili di─čer sorular [javascript]


Klavye haz─▒r oldu─čunda UITextField'in yukar─▒ ├ž─▒kmas─▒n─▒ nas─▒l sa─člayabilirim - d├╝zenlemeye ba┼člarken?

'Raylar─▒n ├╝retti─čini' nas─▒l tersine ├ževiririm?

Komut dosyas─▒n─▒n dizinini Python ile nas─▒l bulabilirim? [├žift]

Nas─▒l bir bitmap android ├žizilebilir d├Ân├╝┼čt├╝rmek i├žin?

Listede max () / min () kullanarak d├Ând├╝r├╝len max veya min ├Â─česinin dizinini alma

IEnumerable'da neden ForEach eklentisi y├Ântemi yok?

Yerel bir gemiyi nas─▒l kurabilirim?

Django geli┼čtirme IDE [kapal─▒]

Ofset-saf ve ofset bilin├žli tarihlerini ├ž─▒karam─▒yor

Bir div i├žindeki y├╝zen elemanlar, div d─▒┼č─▒nda y├╝zer. Niye ya?