जावास्क्रिप्ट और नियमित अभिव्यक्तियों के साथ ईमेल पते की जाँच करें

कुछ समय पहले मैंने एक डाल दिया जावास्क्रिप्ट और रेगुलर एक्सप्रेशंस का उपयोग करते हुए पासवर्ड स्ट्रेंथ चेकर। उसी नोट पर, आप एक ही नियमित अभिव्यक्ति (रेगेक्स) पद्धति का उपयोग करते हुए एक ईमेल पते की संरचना की भी जांच कर सकते हैं।

यदि आपके फॉर्म एलिमेंट में है id = "EMAILADDRESS" और आप एक फॉर्म जोड़ें 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})+$/;
    $ $ ('। ईमेलड्रेस')। प्रत्येक (फ़ंक्शन (ईमेल) {
    अगर (filter.test (email.value)) {
    चेतावनी (कृपया एक वैध ईमेल पता प्रदान करें?);
    ईमेल फोकस;
    मान्य = गलत;
    }
    });
    वैध वापसी;

  2. 5
  3. 7

    मुझे यह विचार पसंद है, लेकिन मैं इस विशेष नियमित अभिव्यक्ति को अपनाने में हिचकिचाता हूँ, जिसमें यह वर्णन किया गया हो कि कौन सा कानूनी ईमेल पते स्वीकार नहीं करता है और कौन सा अवैध पते इसकी अनुमति देता है।

    एक नियमित अभिव्यक्ति के उदाहरण के लिए जो इस बात की व्याख्या के साथ एक अच्छा काम करता है कि यह किन मामलों में शामिल नहीं है, इसे देखें:

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

    मेरी व्यक्तिगत प्राथमिकता अधिकांश साधारण मामलों को कवर करना है और इसे अस्वीकार करने के बजाय बाकी सभी चीजों के लिए चेतावनी जारी करना है। अगर बॉब वास्तव में sto सबमिट करना चाहते हैं बॉब@कॉम.म्यूजियम बजाय Bob@museum.com, उसे क्यों नहीं करने दिया?

    • 8

      हाय रे,

      आप Regex का उपयोग करके परीक्षण कर सकते हैं a ऑनलाइन रेगेक्स परीक्षक.

      इसके अलावा, यदि आप सुनिश्चित करना चाहते हैं तो निश्चित रूप से बहुत कुछ किया जा सकता है ईमेल पता RFC के अनुसार मान्य है।

      किसी को अमान्य ईमेल पता दर्ज करने की अनुमति नहीं देने के कुछ कारण हैं:
      1. वे आप पर नाराज हो जाएंगे जब उन्हें अपेक्षित ईमेल नहीं मिलेगा - भले ही यह आपकी गलती हो या नहीं पता गलत तरीके से दर्ज किया गया था।
      2. यदि com.museum एक मान्य डोमेन था और, मान लें, Yahoo! इसे संचालित किया - कोई भी ईमेल पता जो बाउंस हुआ, ईमेल वितरण के लिए आपकी कंपनी की प्रतिष्ठा पर नकारात्मक प्रभाव डालेगा। इससे आपकी कंपनी के सभी ईमेल ब्लॉक हो सकते हैं।
      3. यदि आपके ईमेल सेवा प्रदाता ने आपको प्रवेश करने की अनुमति दी है बॉब@कॉम.म्यूजियम, आप उस ईमेल पते पर भेजे गए प्रत्येक ईमेल के लिए भी भुगतान करेंगे जब तक कि बाउंस के कारण उस पते की सदस्यता समाप्त नहीं हो जाती। मैं किसी भी ऐसे ईएसपी से दूर रहूंगा जो इस तरह के एक अमान्य ईमेल पते की अनुमति देगा - वे सिर्फ आपका पैसा ले रहे हैं!

      यहां रुकने के लिए शुक्रिया!
      डॉग

  4. 9
  5. 10

    अभिव्यक्ति लिखने का बहुत सरल तरीका है:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - अंतिम संशोधक के साथ / मुझे ऊपरी केस रेंज को इंगित करने की कोई आवश्यकता नहीं है।
    - मुझे किसी का पता नहीं है टीएलडी इसमें संख्याओं के साथ।
    एक साइड नोट पर, मैं TLD को अधिकतम 6 वर्णों की अनुमति देता हूं; नए लोग नियमित रूप से आते हैं और आप कभी नहीं जानते हैं (ठीक है, भविष्य के लोगों को भी इसमें नंबर मिल सकते हैं, मुझे पता है)।

  6. 11

    हाय वहाँ है,

    मैं वास्तविक समय में मौजूदा रूप में इसका उपयोग करने की कोशिश कर रहा हूं, लेकिन यह आपके पासवर्ड शक्ति परीक्षक की तरह वास्तविक समय में मान्य नहीं दिखता ...

    या, मैं सिर्फ उस अनाड़ी हूँ, और यह मेरे लिए काम कर रहा है?

  7. 12
  8. 13

    बस एक FYI करें; मैंने एडी के समाधान की कोशिश नहीं की है, लेकिन ऊपर दिया गया पैटर्न ई-मेल पते को एपोस्ट्रोफ के साथ मान्य नहीं करता है .. (उदाहरण के लिए, माइक। आरएफसी 2821/2822 -> . के अनुसार एपोस्ट्रोफ मान्य हैं http://www.faqs.org/rfcs/rfc2822.html

    एचटीएच,
    संजय

  9. 16
  10. 17

    बस एक छोटा सुधार: नियमित अभिव्यक्ति के अंत में एक अतिरिक्त () + है। इसे पढ़ना चाहिए:

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

    पहले किसी भी लम्बाई के साथ TLD को स्वीकार किया जाएगा (जो आंतरिक रूप से गलत नहीं है क्योंकि दूसरों ने बताया है, लेकिन अगर यही इरादा था तो अभिव्यक्ति को छोटा किया जा सकता है)।

  11. 18

    क्या आप कृपया इस कोड की नियमित अभिव्यक्ति और इसके काम करने के तरीके के बारे में बता सकते हैं? इसके अलावा .test के बारे में - क्या आपके द्वारा उपरोक्त कोड में की गई चीज़ों की जाँच करने के लिए जावास्क्रिप्ट में एक डिफ़ॉल्ट कथन है?

  12. 19
  13. 20

    यह ईमेल अभिव्यक्ति के लिए एक छोटा कोड है-

    फ़ंक्शन को मान्य करें (ईमेल)
    {
    var emailPattern = /^ Isa-zA-Z0-9._-des+@ida-zA-Z0-9।
    वापसी emailPattern.test (आईडी);

    }
    दीपक राय
    वाराणसी

  14. 21
  15. 22
  16. 23

    धन्यवाद, लेकिन इस regex में एक त्रुटि है। मैं रेगेक्स विशेषज्ञ नहीं हूं, लेकिन मैंने ईमेल की कोशिश की:

    परीक्षण परीक्षण

    और यह 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 यह भी अमान्य है क्योंकि अनुक्रम में एक से अधिक डॉट नहीं हो सकते।

    ये केवल कुछ दोष हैं जिन्हें मैंने पहली नजर में देखा था।
    मेरा इरादा सिर्फ इस ओर इशारा करना नहीं है कि अगर कोई इसे सुरक्षा जांच के रूप में इस्तेमाल करने की योजना बना रहा है - तो यह सुरक्षित नहीं है।

    मान्य ई-मेल पतों की जानकारी के लिए इसे देखें: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    दीपक,

    वास्तव में, मुझे लगता है कि आपको डॉट ("") के लिए एक भागने को लागू करने की आवश्यकता है। इसलिए, आपका कार्य इसके बजाय होना चाहिए:

    फ़ंक्शन को मान्य करें (ईमेल)
    {
    var emailPattern = /^ Isa-zA-Z0-9._-des+@ida-zA-Z0-9।
    वापसी emailPattern.test (आईडी);

    }

    अन्यथा, डॉट का अर्थ होगा "कोई भी चरित्र"। मेरा मानना ​​है कि इस तरह के विशेष पात्रों को बच निकलने की जरूरत है।

    सादर,

    फेडरिको

  20. 29

    फ़ंक्शन को मान्य करें (fld) {
    var त्रुटि = "";
    var tfld = ट्रिम (fld.value); // रिक्त स्थान के साथ क्षेत्र का मूल्य छंटनी की गई
    var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
    var अवैधचार्ज = / [() ;: \ "[]] /;

    अगर (fld.value == "अपना ईमेल पता दर्ज करें") {

    त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
    } और अगर (!emailFilter.test(tfld)) {//अवैध वर्णों के लिए ईमेल का परीक्षण करें

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    } और अगर (fld.value.match (गैरकानूनी)) {

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    }
    वापसी त्रुटि;
    }

  21. 30

    फ़ंक्शन को मान्य करें (fld) {
    var त्रुटि = "";
    var tfld = ट्रिम (fld.value); // रिक्त स्थान के साथ क्षेत्र का मूल्य छंटनी की गई
    var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
    var अवैधचार्ज = / [() ;: \ "[]] /;

    अगर (fld.value == "अपना ईमेल पता दर्ज करें") {

    त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
    } और अगर (!emailFilter.test(tfld)) {//अवैध वर्णों के लिए ईमेल का परीक्षण करें

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    } और अगर (fld.value.match (गैरकानूनी)) {

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    }
    वापसी त्रुटि;
    }

  22. 31

    फ़ंक्शन को मान्य करें (fld) {
    var त्रुटि = "";
    var tfld = ट्रिम (fld.value); // रिक्त स्थान के साथ क्षेत्र का मूल्य छंटनी की गई
    var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
    var अवैधचार्ज = / [() ;: \ "[]] /;

    अगर (fld.value == "अपना ईमेल पता दर्ज करें") {

    त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
    } और अगर (!emailFilter.test(tfld)) {//अवैध वर्णों के लिए ईमेल का परीक्षण करें

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    } और अगर (fld.value.match (गैरकानूनी)) {

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    }
    वापसी त्रुटि;
    }

  23. 32

    फ़ंक्शन को मान्य करें (fld) {
    var त्रुटि = "";
    var tfld = ट्रिम (fld.value); // रिक्त स्थान के साथ क्षेत्र का मूल्य छंटनी की गई
    var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
    var अवैधचार्ज = / [() ;: \ "[]] /;

    अगर (fld.value == "अपना ईमेल पता दर्ज करें") {

    त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
    } और अगर (!emailFilter.test(tfld)) {//अवैध वर्णों के लिए ईमेल का परीक्षण करें

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    } और अगर (fld.value.match (गैरकानूनी)) {

    त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
    }
    वापसी त्रुटि;
    }

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

      लेकिन केवल आधुनिक ब्राउज़रों के साथ काम करता है। दुर्भाग्य से, दुनिया अभी तक पकड़ा नहीं है। -
      IPhone के लिए मेलबॉक्स से भेजा गया

तुम्हें क्या लगता है?

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.