შეამოწმეთ ელ.ფოსტის მისამართი JavaScript და რეგულარული გამონათქვამებით

ცოტა ხნის წინ დავდე ა პაროლის სიძლიერის შემმოწმებელი JavaScript და Regular გამოხატვის გამოყენებით. იმავე შენიშვნაზე ასევე შეგიძლიათ შეამოწმოთ ელ.ფოსტის მისამართის სტრუქტურა იგივე რეგულარული გამოხატვის (regex) მეთოდოლოგიის გამოყენებით.

თუ თქვენი ფორმის ელემენტს აქვს id = ”ელექტრონული მისამართი” და თქვენ დაამატებთ ფორმას onSubmit = ”დაბრუნების შემოწმება ელ.ფოსტა ();”, ეს არის Javascript ფუნქცია, რომლის გამოყენება შეგიძლიათ გაფრთხილების დასაბრუნებლად, თუ ელ.ფოსტის მისამართს მოქმედი სტრუქტურა აქვს ან არა:

function checkEmail() {
var email = document.getElementById('emailaddress');
var filter = /^(([^<>()[\]\\.,;:\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,}))$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}

ფუნქცია ამოწმებს ელ.ფოსტის შინაარსს ფილტრისთვის. თუ შედარება ვერ მოხერხდა, ის გამოდის გაფრთხილება და ფოკუსირება უბრუნდება ელ.ფოსტის მისამართის ველს!

41 კომენტარები

  1. 1

    მრავალი ელ.ფოსტის მისამართის მქონე ფორმისთვის კარგი იქნება, თუ გავაკეთებთ class = ”emailaddress”. თუ თქვენ გაქვთ prototype.js ბიბლიოთეკა (http://www.prototypejs.org) გვერდზე მოცემულია მსგავსი რამის გაკეთება:

    var მოქმედი = მართალი;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $ $ ('. emailaddress'). თითოეული (ფუნქცია (ელ.წერილი) {
    თუ (! filter.test (ელ.ფოსტა. მნიშვნელობა)) {
    გაფრთხილება (? გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი?);
    ელ.ფოკუსი;
    მართებულია = ყალბი;
    }
    });
    დაბრუნება ძალაშია;

  2. 5
  3. 7

    მე მომწონს იდეა, მაგრამ მე ვეჭვიანობდი მივიღო ეს კონკრეტული რეგულარული გამონათქვამი, სადაც არ იქნება აღწერილი, თუ რომელი იურიდიული ელ.ფოსტის მისამართებს არ ეთანხმება და რომელი არალეგალური მისამართების უფლებას იძლევა.

    რეგულარული გამონათქვამის მაგალითზე, რომელიც ღირსეულ საქმეს ასრულებს და განმარტავს, თუ რომელ შემთხვევებს არ მოიცავს, იხილეთ ეს:

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

    ჩემი პირადი უპირატესობა არის მარტივი შემთხვევების უმეტესობის გაშუქება და გაფრთხილების გაცემა ყველა დანარჩენისთვის, ვიდრე უარი ვთქვა მასზე. თუ ბობს ნამდვილად სურს წარდგენა bob@com.museum ვიდრე bob@museum.comრატომ არ უშვებს მას?

    • 8

      გამარჯობა რეგ,

      შეგიძლიათ გამოსცადოთ Regex Regex ონლაინ ტესტერი.

      ასევე, ნამდვილად ბევრი რამის გაკეთება შეიძლება, თუ გსურთ უზრუნველყოთ ელექტრონული ფოსტის მისამართი მოქმედებს RFC– ს შესაბამისად.

      არსებობს რამდენიმე მიზეზი, რომ არ დაუშვან არასწორი ელ.ფოსტის მისამართი:
      1. ისინი გაღიზიანდებიან, როდესაც ელ.წერილი არ მიიღებს - იმისდა მიუხედავად, თქვენი ბრალი იყო თუ არა, მისამართი არასწორად იქნა შეყვანილი.
      2. თუ com.museum მოქმედი დომენი იყო და, ვთქვათ, Yahoo! მოქმედებდა მასზე - ნებისმიერი ელ.ფოსტის მისამართი, რომელიც უარყოფდა, უარყოფითად აისახება თქვენი კომპანიის რეპუტაციაზე ელ.ფოსტით გაგზავნით. ამან შეიძლება გამოიწვიოს თქვენი კომპანიის ყველა ელ.ფოსტის დაბლოკვა.
      3. თუ თქვენი ელ.ფოსტის სერვისის პროვაიდერმა შესვლის უფლება მოგცათ bob@com.museumთქვენ ასევე გადაიხდით ამ ელ.ფოსტაზე გაგზავნილ თითოეულ ელ.ფოსტაზე, სანამ ისინი არ გამოწერენ ამ მისამართს გამოხტომების გამო. თავიდან ავიცილებდი ESP- ს, რომელიც საშუალებას მისცემს არასწორი ელ.ფოსტის მისამართს - ისინი უბრალოდ იღებენ თქვენს ფულს!

      მადლობა შეჩერების მიერ!
      Doug

  4. 9
  5. 10

    გამოთქმის დასაწერად გაცილებით მარტივი გზა არსებობს:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - საბოლოო მოდიფიკატორით / i არ არის საჭირო დიდი ასოების მითითება.
    - არცერთი არ ვიცი TLD მასში ციფრებით.
    გვერდითი შენიშვნით, მე დავუშვებ TLD– ს 6 სიმბოლოთი; ახლები რეგულარულად ჩამოდიან და თქვენ არასოდეს იცით (კარგად, სომ მომავალებს შეიძლება რიცხვებიც კი ჰქონდეთ, მე ვიცი).

  6. 11

    Hi there,

    ვცდილობ, ეს რეალურ დროში გამოვიყენო არსებული ფორმით, მაგრამ, როგორც ჩანს, ეს არ ხდება რეალურ დროში, როგორც შენი პაროლის სიძლიერის შემოწმება

    ან, მე ვარ უბრალოდ, რომ უშეცდომოდ, და ეს არ მუშაობს ჩემთვის?

  7. 12
  8. 13

    უბრალოდ FYI; მე არ მიცდია ადეს გამოსავალი, მაგრამ ზემოთ მოცემული ნიმუში არ ამტკიცებს ელ.ფოსტის მისამართებს, სადაც მოთავსებულია აპოსტროფები. (მაგ., Mike.O'Hare@Whatever.com). აპოსტროფები მოქმედებს RFC 2821/2822 -> - ზე http://www.faqs.org/rfcs/rfc2822.html

    HTH,
    Sanjay

  9. 16

    კარგი იქნება, თუკი გამოსავალს ვპოულობთ, რომ თავიდან ავიცილოთ ყალბი ელექტრონული ფოსტის მისამართები WordPress– ის კომენტარებზე

  10. 17

    მხოლოდ მცირე შესწორება: რეგულარულ გამოთქმას აქვს ბოლოს დამატებით () +. აქ უნდა წაიკითხოთ:

    ^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$

    პირველით მიიღება ნებისმიერი სიგრძის TLD (რაც შინაგანად არასწორია, როგორც სხვები აღნიშნავენ, მაგრამ თუ ეს მიზანი იქნებოდა, გამოხატვის შემცირება შეიძლებოდა).

  11. 18

    გთხოვთ, ახსნათ ამ კოდის რეგულარული გამოხატვა და როგორ მუშაობს იგი? ასევე .test– ის შესახებ. არის .test არის ნაგულისხმევი განცხადება javascript– ში, რომ შეამოწმოთ ისეთი რამ, რაც გააკეთეთ ზემოთ მოცემულ კოდში?

  12. 19

    ეს არის ელექტრონული ფოსტის გამოხატვის მოკლე კოდი-

    ფუნქციის დამოწმება ელ.ფოსტა (id)
    {
    var emailPattern = /^^a-zA-Z0-9._- +++ + ჩანაწერები- zA-Z0-9.
    emailPattern.test დაბრუნების (id);

    }
    დიპაქი რაი
    ვარანასი

  13. 20

    ეს არის ელექტრონული ფოსტის გამოხატვის მოკლე კოდი-

    ფუნქციის დამოწმება ელ.ფოსტა (id)
    {
    var emailPattern = /^^a-zA-Z0-9._- +++ + ჩანაწერები- zA-Z0-9.
    emailPattern.test დაბრუნების (id);

    }
    დიპაქი რაი
    ვარანასი

  14. 21
  15. 22
  16. 23

    მადლობა, მაგრამ ამ regex– ში შეცდომაა. მე არ ვარ რეჯექსის ექსპერტი, მაგრამ ვცადე ელ.წერილი:

    ტესტი @ ტესტი

    და მან გაიარა რეგექსი… მე დავინახე, რომ ”” გაქცევას აკლია. ასე უნდა იყოს:

    /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

  17. 24
  18. 27

    ეს უბრალოდ უხეში შემოწმებაა, მაგრამ არა 100% ზუსტი, მაგალითად, ეს კარგი იქნება john_doe. @ gmail.com რაც ფაქტობრივად არ არის სწორი ელ.ფოსტის მისამართი (წერტილი დაუშვებელია, როგორც ბოლო სიმბოლო ელ.ფოსტის ადგილობრივ ნაწილში).
    ასევე ის მიიღებს john…doe@gmail.com რაც ასევე არასწორია, რადგან თანმიმდევრობით არ შეიძლება იყოს ერთზე მეტი წერტილი.

    ეს მხოლოდ რამდენიმე ხარვეზია, რომელიც ერთი შეხედვით შევნიშნე.
    ჩემი განზრახვა არ არის bashing მხოლოდ აღვნიშნო ამის შესახებ, თუ ვინმე აპირებს გამოიყენოს იგი უსაფრთხოების შემოწმება - არ არის საკმარისად დაცული.

    ელ.ფოსტის მოქმედი მისამართების შესახებ ინფორმაციისთვის იხილეთ: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    სინამდვილეში, ვფიქრობ, თქვენ უნდა გამოიყენოთ წერტილის გაქცევა ("."). ამის ნაცვლად, თქვენი ფუნქცია უნდა იყოს:

    ფუნქციის დამოწმება ელ.ფოსტა (id)
    {
    var emailPattern = /^^a-zA-Z0-9._- +++ + ჩანაწერები- zA-Z0-9.
    emailPattern.test დაბრუნების (id);

    }

    წინააღმდეგ შემთხვევაში, წერტილი ნიშნავს "ნებისმიერ პერსონაჟს". მე მჯერა, რომ ასეთი განსაკუთრებული პერსონაჟების გაქცევაა საჭირო.

    Regards,

    ფედერიკო

  20. 29

    ფუნქციის დამოწმება ელ.ფოსტა (fld) {
    var შეცდომა = ””;
    var tfld = მორთვა (fld. მნიშვნელობა); // თეთრი სივრცის ველის მნიშვნელობა გათიშულია
    var emailFilter = /^^^@ +++ [პირველი].
    var legalChars = / [(),;: \ ”[]] /;

    თუ (fld.value == "შეიყვანეთ თქვენი ელ.ფოსტის მისამართი") {

    შეცდომა = "გთხოვთ, შეიყვანოთ თქვენი ელ.ფოსტის მისამართი. n";
    } other if (! emailFilter.test (tfld)) {// ელ.ფოსტის ტესტი უკანონო სიმბოლოებისთვის

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    } other if (fld.value.match (უკანონო შარდები)) {

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    }
    დაბრუნების შეცდომა;
    }

  21. 30

    ფუნქციის დამოწმება ელ.ფოსტა (fld) {
    var შეცდომა = ””;
    var tfld = მორთვა (fld. მნიშვნელობა); // თეთრი სივრცის ველის მნიშვნელობა გათიშულია
    var emailFilter = /^^^@ +++ [პირველი].
    var legalChars = / [(),;: \ ”[]] /;

    თუ (fld.value == "შეიყვანეთ თქვენი ელ.ფოსტის მისამართი") {

    შეცდომა = "გთხოვთ, შეიყვანოთ თქვენი ელ.ფოსტის მისამართი. n";
    } other if (! emailFilter.test (tfld)) {// ელ.ფოსტის ტესტი უკანონო სიმბოლოებისთვის

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    } other if (fld.value.match (უკანონო შარდები)) {

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    }
    დაბრუნების შეცდომა;
    }

  22. 31

    ფუნქციის დამოწმება ელ.ფოსტა (fld) {
    var შეცდომა = ””;
    var tfld = მორთვა (fld. მნიშვნელობა); // თეთრი სივრცის ველის მნიშვნელობა გათიშულია
    var emailFilter = /^^^@ +++ [პირველი].
    var legalChars = / [(),;: \ ”[]] /;

    თუ (fld.value == "შეიყვანეთ თქვენი ელ.ფოსტის მისამართი") {

    შეცდომა = "გთხოვთ, შეიყვანოთ თქვენი ელ.ფოსტის მისამართი. n";
    } other if (! emailFilter.test (tfld)) {// ელ.ფოსტის ტესტი უკანონო სიმბოლოებისთვის

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    } other if (fld.value.match (უკანონო შარდები)) {

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    }
    დაბრუნების შეცდომა;
    }

  23. 32

    ფუნქციის დამოწმება ელ.ფოსტა (fld) {
    var შეცდომა = ””;
    var tfld = მორთვა (fld. მნიშვნელობა); // თეთრი სივრცის ველის მნიშვნელობა გათიშულია
    var emailFilter = /^^^@ +++ [პირველი].
    var legalChars = / [(),;: \ ”[]] /;

    თუ (fld.value == "შეიყვანეთ თქვენი ელ.ფოსტის მისამართი") {

    შეცდომა = "გთხოვთ, შეიყვანოთ თქვენი ელ.ფოსტის მისამართი. n";
    } other if (! emailFilter.test (tfld)) {// ელ.ფოსტის ტესტი უკანონო სიმბოლოებისთვის

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    } other if (fld.value.match (უკანონო შარდები)) {

    შეცდომა = "გთხოვთ მიუთითოთ სწორი ელ.ფოსტის მისამართი. n";
    }
    დაბრუნების შეცდომა;
    }

  24. 33
  25. 34
  26. 35
  27. 36
  28. 37
  29. 38
  30. 39
  31. 40

რას ფიქრობთ?

ეს საიტი იყენებს Akismet- ს, რათა შეამციროს სპამი. შეისწავლეთ თქვენი კომენტარის მონაცემები დამუშავებული.