ពិនិត្យអាស័យដ្ឋានអ៊ីម៉ែលដោយប្រើ JavaScript និងកន្សោមធម្មតា

មួយខណៈពេលមុនខ្ញុំបានដាក់ កម្មវិធីត្រួតពិនិត្យកម្លាំងពាក្យសម្ងាត់ដោយប្រើ JavaScript និងកន្សោមធម្មតា។ នៅលើកំណត់សំគាល់ដដែលនោះអ្នកក៏អាចពិនិត្យមើលរចនាសម្ព័ន្ធនៃអាស័យដ្ឋានអ៊ីម៉ែលមួយដែលប្រើវិធីសាស្រ្តបញ្ចេញមតិធម្មតា (regex) ។

ប្រសិនបើធាតុសំណុំបែបបទរបស់អ្នកមាន លេខសម្គាល់ =” អាស័យដ្ឋានអ៊ីម៉ែល” ហើយអ្នកបន្ថែមទម្រង់មួយ onSubmit =” ត្រឡប់ពិនិត្យអ៊ីមែល ();“ នេះគឺជាមុខងារចាវ៉ាស្គ្រីបដែលអ្នកអាចប្រើដើម្បីឆ្លើយតបការដាស់តឿនប្រសិនបើអាសយដ្ឋានអ៊ីមែលមានរចនាសម្ព័ន្ធត្រឹមត្រូវរឺអត់:

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

    សម្រាប់ទម្រង់ដែលមានអាស័យដ្ឋានអ៊ីម៉ែលច្រើនវាជាការប្រសើរក្នុងការធ្វើថ្នាក់ =” អ៊ីម៉ែល” ។ ប្រសិនបើអ្នកមានបណ្ណាល័យប្រូតូកូលហ្សេន។http://www.prototypejs.org) រួមបញ្ចូលនៅលើទំព័រដែលអ្នកអាចធ្វើអ្វីមួយដូចខាងក្រោមនេះ៖

    var សុពលភាព = ពិត;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('។ emailaddress') ។ នីមួយៗ (មុខងារ (អ៊ីមែល) {
    ប្រសិនបើ (! filter.test (email.value)) {
    ជូនដំណឹង (? សូមផ្ដល់អាសយដ្ឋានអ៊ីមែលត្រឹមត្រូវ?);
    email.focus;
    សុពលភាព = មិនពិត;
    }
    });
    ត្រឡប់មកវិញមានសុពលភាព;

  2. 5
  3. 7

    ខ្ញុំចូលចិត្តគំនិតប៉ុន្តែខ្ញុំនឹងស្ទាក់ស្ទើរក្នុងការទទួលយកការបញ្ចេញមតិទៀងទាត់ពិសេសនេះដោយគ្មានការពិពណ៌នាអំពីអាសយដ្ឋានអ៊ីម៉ែលស្របច្បាប់ណាមួយដែលវាមិនទទួលយកនិងអាសយដ្ឋានខុសច្បាប់ណាមួយដែលវាអនុញ្ញាត។

    ឧទាហរណ៍ឧទាហរណ៍នៃការបញ្ចេញមតិទៀងទាត់ដែលធ្វើការងារសមរម្យរួមជាមួយការពន្យល់អំពីករណីណាដែលវាមិនមានសូមមើលនេះ៖

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

    ចំណង់ចំណូលចិត្តផ្ទាល់ខ្លួនរបស់ខ្ញុំគឺគ្របដណ្តប់លើករណីសាមញ្ញ ៗ ជាច្រើនហើយចេញការព្រមានសម្រាប់អ្វីៗផ្សេងទៀតជាជាងបដិសេធ។ បើលោក Bob ពិតជាចង់បានការដាក់ស្នើ bob@com.museum ជាជាង bob@museum.comហេតុអ្វីបានជាមិនអនុញ្ញាតឱ្យគាត់?

    • 8

      សួស្តី Reg,

      អ្នកអាចសាកល្បងប្រើ Regex ដោយប្រើប្រាស់ឯកសារមួយ អ្នកសាកល្បងតាមអ៊ិនធឺរណែត Regex Tester.

      ដូចគ្នានេះផងដែរវាពិតជាមានច្រើនទៀតដែលអាចធ្វើបានប្រសិនបើអ្នកចង់ធានាឱ្យបាន អាស័យ​ដ្ឋាន​អ៊ី​ម៉េ​ល មានសុពលភាពស្របតាម RFC ។

      មានហេតុផលមួយចំនួនដែលមិនអនុញ្ញាតឱ្យនរណាម្នាក់បញ្ចូលអាសយដ្ឋានអ៊ីមែលមិនត្រឹមត្រូវ:
      ពួកគេនឹងធ្វើឱ្យអ្នកធុញថប់នៅពេលដែលអ៊ីម៉ែលដែលពួកគេបានរំពឹងថានឹងមិនទទួលបាន - មិនថាវាជាកំហុសរបស់អ្នកអាសយដ្ឋានត្រូវបានបញ្ចូលមិនត្រឹមត្រូវ។
      ប្រសិនបើ com.museum គឺជាដែនដែលមានសុពលភាពហើយចូរនិយាយថា Yahoo! ប្រតិបត្តិការវា - អាស័យដ្ឋានអ៊ីមែលណាមួយដែលលោតចេញអាចជះឥទ្ធិពលអវិជ្ជមានដល់កេរ្តិ៍ឈ្មោះក្រុមហ៊ុនរបស់អ្នកចំពោះការបញ្ជូនអ៊ីមែល។ នេះអាចនាំឱ្យអ៊ីមែលរបស់ក្រុមហ៊ុនអ្នកទាំងអស់ត្រូវបានរារាំង។
      3. ប្រសិនបើអ្នកផ្តល់សេវាកម្មអ៊ីម៉ែលរបស់អ្នកអនុញ្ញាតឱ្យអ្នកចូល bob@com.museumអ្នកក៏ត្រូវបង់ប្រាក់សម្រាប់អ៊ីមែលនីមួយៗដែលបានផ្ញើទៅអាសយដ្ឋានអ៊ីមែលនោះរហូតដល់ពួកគេឈប់ជាវអាសយដ្ឋាននោះដោយសារតែការលោត។ ខ្ញុំនឹងបោសសំអាតអេអេសអិលដែលនឹងអនុញ្ញាតឱ្យមានអាសយដ្ឋានអ៊ីមែលមិនត្រឹមត្រូវដូចនោះ - ពួកគេគ្រាន់តែយកលុយរបស់អ្នក!

      សូមអរគុណសម្រាប់ការបញ្ឈប់ដោយ!
      លោក Doug

  4. 9
  5. 10

    មានវិធីងាយជាងក្នុងការសរសេរកន្សោម៖
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - ជាមួយនឹងការកែប្រែចុងក្រោយ / ខ្ញុំមិនចាំបាច់បង្ហាញពីជួរអក្សរធំទេ។
    - ខ្ញុំមិនដឹងទេ TLD ជាមួយលេខនៅក្នុងវា។
    នៅលើកំណត់ចំណាំមួយចំហៀងខ្ញុំអនុញ្ញាតឱ្យ TLD មានរហូតដល់ទៅ ៦ អក្សរ។ អ្នកថ្មីមកដល់ជាប្រចាំហើយអ្នកមិនដឹង (ល្អទេអនាគតអ្នកនឹងកាន់តែច្រើនខ្ញុំក៏ដឹងដែរ) ។

  6. 11

    សួស្តី,

    ខ្ញុំកំពុងប្រើវិធីនេះក្នុងទម្រង់មួយដែលមានស្រាប់នៅក្នុងពេលវេលាប៉ុន្តែនេះហាក់ដូចជាមិនមានសុពលភាពក្នុងពេលជាក់ស្តែងដូចជាអ្នកត្រួតពិនិត្យលេខសំងាត់របស់អ្នក ...

    ឬខ្ញុំគ្រាន់តែជាមនុស្សឥតប្រយោជន៍ហើយវាពិតជាគួរឱ្យចាប់អារម្មណ៍សម្រាប់ខ្ញុំមែនទេ?

  7. 12
  8. 13

    គ្រាន់តែ FYI មួយ; ខ្ញុំមិនបានសាកល្បងដំណោះស្រាយរបស់អាឌីទេប៉ុន្តែលំនាំខាងលើមិនមានសុពលភាពអាស័យដ្ឋានអ៊ីម៉ែលដែលមានអាសយដ្ធាននៅក្នុងនោះទេ (ឧទាហរណ៍ Mike.O'Hare@Whatever.com) ។ សញ្ញាតិមានសុពលភាពក្នុង RFC 2821/2822 -> http://www.faqs.org/rfcs/rfc2822.html

    HTH,
    លោក Sanjay

  9. 16

    នឹងល្អប្រសិនបើយើងអាចរកដំណោះស្រាយដើម្បីជៀសវាងអាសយដ្ឋានអ៊ីមែលក្លែងក្លាយលើយោបល់លើប្លក, រូបភាព

  10. 17

    គ្រាន់តែការកែសំរួលបន្តិចបន្តួច៖ កន្សោមធម្មតាមានបន្ថែម () + នៅខាងចុង។ វាគួរតែអាន៖

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

    ជាមួយនឹងប្រវែងទីមួយ TLDs ណាមួយនឹងត្រូវបានទទួលយក (ដែលមិនមែនជាកំហុសខុសពីអ្វីដែលអ្នកដទៃទៀតបានលើកឡើងនោះទេប៉ុន្តែប្រសិនបើនោះជាចេតនាការបញ្ចេញមតិអាចត្រូវបានខ្លីជាងនេះ) ។

  11. 18

    តើអ្នកអាចពន្យល់ពីការបញ្ចេញមតិទៀងទាត់នៃលេខកូដនេះនិងដំណើរការរបស់វាយ៉ាងដូចម្តេច? ផងដែរអំពី .test - តើ .test សេចក្តីថ្លែងការណ៍លំនាំដើមនៅក្នុង javascript ដើម្បីពិនិត្យមើលអ្វីដែលអ្នកបានធ្វើនៅក្នុងកូដខាងលើ?

  12. 19

    នេះជាលេខកូដខ្លីសម្រាប់ការបញ្ចេញមតិតាមអ៊ីមែល -

    មុខងារធ្វើឱ្យមានសុពលភាពអ៊ីម៉ែល (លេខសម្គាល់)
    {
    var emailPattern = /^==-zA-Z0-9._- អ្វីៗ+@IS-zA-Z0-៩.-++.២១-zA-Z សំរេចបាន ២,៤}$/;
    ត្រឡប់ emailPattern.test (លេខសម្គាល់);

    }
    ឌូកាក់រ៉ៃ
    varanasi

  13. 20

    នេះជាលេខកូដខ្លីសម្រាប់ការបញ្ចេញមតិតាមអ៊ីមែល -

    មុខងារធ្វើឱ្យមានសុពលភាពអ៊ីម៉ែល (លេខសម្គាល់)
    {
    var emailPattern = /^==-zA-Z0-9._- អ្វីៗ+@IS-zA-Z0-៩.-++.២១-zA-Z សំរេចបាន ២,៤}$/;
    ត្រឡប់ emailPattern.test (លេខសម្គាល់);

    }
    ឌូកាក់រ៉ៃ
    varanasi

  14. 21
  15. 22
  16. 23

    សូមអរគុណប៉ុន្តែមានកំហុសមួយនៅក្នុង regex នេះ។ ខ្ញុំមិនមែនជាអ្នកជំនាញ regex ទេប៉ុន្តែខ្ញុំបានព្យាយាមអ៊ីមែល:

    test @ សាកល្បង

    ហើយវាបានឆ្លងដល់ចំនុចកំពូល…ខ្ញុំបានកត់សម្គាល់ឃើញថាវាកំពុងរត់គេចពី“” ។ ដូច្នេះវាគួរតែជា៖

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

  17. 24
  18. 27

    ជាការប្រសើរណាស់នេះគ្រាន់តែជាការត្រួតពិនិត្យរដុបប៉ុន្តែមិនត្រឹមត្រូវ ១០០% ទេឧទាហរណ៍វាមិនអីទេ john_doe ។ @ gmail.com ដែលមិនមែនជាអាសយដ្ឋានអ៊ីមែលត្រឹមត្រូវ (ចំណុចមិនត្រូវបានអនុញ្ញាតជាតួអក្សរចុងក្រោយនៅក្នុងផ្នែកមូលដ្ឋាននៃអ៊ីមែលទេ) ។
    វាក៏នឹងទទួលយកផងដែរ john …doe@gmail.com ដែលមិនមានសុពលភាពផងដែរព្រោះវាមិនអាចមានចំនុចលើសពីមួយនៅក្នុងលំដាប់ទេ។

    ទាំងនេះគ្រាន់តែជាគុណវិបត្តិមួយចំនួនដែលខ្ញុំបានកត់សំគាល់នៅពេលមើលឃើញដំបូង។
    បំណងរបស់ខ្ញុំគឺមិនគ្រាន់តែជាការចង្អុលបង្ហាញក្នុងករណីដែលនរណាម្នាក់មានគម្រោងប្រើវាជាការត្រួតពិនិត្យសន្តិសុខ - មិនមានសុវត្ថិភាពគ្រប់គ្រាន់។

    សំរាប់ពត៌មានអំពីអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាពសូមពិនិត្យមើលវា៖ http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    ឌុកតាក,

    តាមពិតខ្ញុំគិតថាអ្នកត្រូវអនុវត្តការរត់គេចសម្រាប់ចំនុច (“ ។ ”) ។ ដូច្នេះមុខងាររបស់អ្នកគួរតែជំនួស៖

    មុខងារធ្វើឱ្យមានសុពលភាពអ៊ីម៉ែល (លេខសម្គាល់)
    {
    var emailPattern = /^==-zA-Z0-9._- អ្វីៗ+@IS-zA-Z0-៩.-++.២១-zA-Z សំរេចបាន ២,៤}$/;
    ត្រឡប់ emailPattern.test (លេខសម្គាល់);

    }

    បើមិនដូច្នោះទេចំនុចអាចមានន័យថា“ តួអក្សរណាមួយ” ។ ខ្ញុំជឿជាក់ថាតួអង្គពិសេសបែបនេះចាំបាច់ត្រូវរត់គេចខ្លួន។

    ទាក់ទង,

    Federico

  20. 29

    មុខងារធ្វើឱ្យមានសុពលភាពអ៊ីម៉ែល (fld) {
    var error =””;
    var tfld = កាត់ (fld.value); // តម្លៃនៃវាលជាមួយចន្លោះដែលបានកាត់ចេញ
    var emailFilter = /^ អត្ថបទសរសេរអ៊ីមែលបញ្ចប់+@ສານ, អ៊ី។
    var ខុសច្បាប់Chars = / [(),;: \ "[]] /;

    បើ (fld.value == "បញ្ចូលអាសយដ្ឋានអ៊ីមែលរបស់អ្នក") {

    កំហុស = "សូមបញ្ចូលអាសយដ្ឋានអ៊ីម៉ែលរបស់អ្នក" ។
    } ផ្សេងទៀតប្រសិនបើ (! emailFilter.test (tfld)) {// តេស្តអ៊ីមែលសម្រាប់តួអក្សរខុសច្បាប់

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    } ផ្សេងទៀតប្រសិនបើ (fld.value.match (ខុសច្បាប់)) {

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    }
    កំហុសត្រឡប់;
    }

  21. 30

    មុខងារធ្វើឱ្យមានសុពលភាពអ៊ីម៉ែល (fld) {
    var error =””;
    var tfld = កាត់ (fld.value); // តម្លៃនៃវាលជាមួយចន្លោះដែលបានកាត់ចេញ
    var emailFilter = /^ អត្ថបទសរសេរអ៊ីមែលបញ្ចប់+@ສານ, អ៊ី។
    var ខុសច្បាប់Chars = / [(),;: \ "[]] /;

    បើ (fld.value == "បញ្ចូលអាសយដ្ឋានអ៊ីមែលរបស់អ្នក") {

    កំហុស = "សូមបញ្ចូលអាសយដ្ឋានអ៊ីម៉ែលរបស់អ្នក" ។
    } ផ្សេងទៀតប្រសិនបើ (! emailFilter.test (tfld)) {// តេស្តអ៊ីមែលសម្រាប់តួអក្សរខុសច្បាប់

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    } ផ្សេងទៀតប្រសិនបើ (fld.value.match (ខុសច្បាប់)) {

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    }
    កំហុសត្រឡប់;
    }

  22. 31

    មុខងារធ្វើឱ្យមានសុពលភាពអ៊ីម៉ែល (fld) {
    var error =””;
    var tfld = កាត់ (fld.value); // តម្លៃនៃវាលជាមួយចន្លោះដែលបានកាត់ចេញ
    var emailFilter = /^ អត្ថបទសរសេរអ៊ីមែលបញ្ចប់+@ສານ, អ៊ី។
    var ខុសច្បាប់Chars = / [(),;: \ "[]] /;

    បើ (fld.value == "បញ្ចូលអាសយដ្ឋានអ៊ីមែលរបស់អ្នក") {

    កំហុស = "សូមបញ្ចូលអាសយដ្ឋានអ៊ីម៉ែលរបស់អ្នក" ។
    } ផ្សេងទៀតប្រសិនបើ (! emailFilter.test (tfld)) {// តេស្តអ៊ីមែលសម្រាប់តួអក្សរខុសច្បាប់

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    } ផ្សេងទៀតប្រសិនបើ (fld.value.match (ខុសច្បាប់)) {

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    }
    កំហុសត្រឡប់;
    }

  23. 32

    មុខងារធ្វើឱ្យមានសុពលភាពអ៊ីម៉ែល (fld) {
    var error =””;
    var tfld = កាត់ (fld.value); // តម្លៃនៃវាលជាមួយចន្លោះដែលបានកាត់ចេញ
    var emailFilter = /^ អត្ថបទសរសេរអ៊ីមែលបញ្ចប់+@ສານ, អ៊ី។
    var ខុសច្បាប់Chars = / [(),;: \ "[]] /;

    បើ (fld.value == "បញ្ចូលអាសយដ្ឋានអ៊ីមែលរបស់អ្នក") {

    កំហុស = "សូមបញ្ចូលអាសយដ្ឋានអ៊ីម៉ែលរបស់អ្នក" ។
    } ផ្សេងទៀតប្រសិនបើ (! emailFilter.test (tfld)) {// តេស្តអ៊ីមែលសម្រាប់តួអក្សរខុសច្បាប់

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    } ផ្សេងទៀតប្រសិនបើ (fld.value.match (ខុសច្បាប់)) {

    error =“ សូមបញ្ចូលអាស័យដ្ឋានអ៊ីម៉ែលដែលមានសុពលភាព” ។
    }
    កំហុសត្រឡប់;
    }

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

      ប៉ុន្តែដំណើរការតែជាមួយកម្មវិធីរុករកទំនើបប៉ុណ្ណោះ។ ជាអកុសលពិភពលោកមិនទាន់ចាប់បាននៅឡើយទេ។ -
      ផ្ញើពីប្រអប់សំបុត្រសម្រាប់ទូរស័ព្ទ iPhone

តើ​អ្នក​គិត​អ្វី?

តំបន់បណ្ដាញនេះប្រើ Akismet ដើម្បីកាត់បន្ថយសារឥតបានការ។ សិក្សាអំពីរបៀបដែលទិន្នន័យរបស់អ្នកត្រូវបានដំណើរការ.