कुछ समय पहले मैंने एक डाल दिया जावास्क्रिप्ट और रेगुलर एक्सप्रेशंस का उपयोग करते हुए पासवर्ड स्ट्रेंथ चेकर। उसी नोट पर, आप एक ही नियमित अभिव्यक्ति (रेगेक्स) पद्धति का उपयोग करते हुए एक ईमेल पते की संरचना की भी जांच कर सकते हैं।
यदि आपके फॉर्म एलिमेंट में है 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; } }
फ़ंक्शन फ़िल्टर के ईमेल की सामग्री को मान्य करता है। यदि तुलना विफल हो जाती है, तो यह एक अलर्ट पॉप अप करता है और फ़ोकस को वापस ईमेल पते के क्षेत्र में लौटाता है!
कई ईमेल पतों वाले फ़ॉर्म के लिए, वर्ग = "emailaddress" करना अच्छा होगा। यदि आपके पास प्रोटोटाइप। जेएस लाइब्रेरी है (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)) {
चेतावनी (कृपया एक वैध ईमेल पता प्रदान करें?);
ईमेल फोकस;
मान्य = गलत;
}
});
वैध वापसी;
धन्यवाद Ade! मुझे कक्षाओं और जावास्क्रिप्ट के बारे में कुछ और जानने की जरूरत है!
डौग का मूल उदाहरण शांत था, लेकिन यह एक ठंड है! मुझे नहीं पता था कि आप इस तरह से क्लास वाले तत्वों को प्रोसेस कर सकते हैं, और कार्यात्मक वाक्यविन्यास मीठा है।
Ade और उनकी टीम अद्भुत है!
अच्छा है, मैं हमेशा कुछ दुष्ट शांत लिपियों के लिए आप पर भरोसा कर सकता हूं! 🙂
धन्यवाद टोनी!
मुझे यह विचार पसंद है, लेकिन मैं इस विशेष नियमित अभिव्यक्ति को अपनाने में हिचकिचाता हूँ, जिसमें यह वर्णन किया गया हो कि कौन सा कानूनी ईमेल पते स्वीकार नहीं करता है और कौन सा अवैध पते इसकी अनुमति देता है।
एक नियमित अभिव्यक्ति के उदाहरण के लिए जो इस बात की व्याख्या के साथ एक अच्छा काम करता है कि यह किन मामलों में शामिल नहीं है, इसे देखें:
http://www.regular-expressions.info/email.html
मेरी व्यक्तिगत प्राथमिकता अधिकांश साधारण मामलों को कवर करना है और इसे अस्वीकार करने के बजाय बाकी सभी चीजों के लिए चेतावनी जारी करना है। अगर बॉब वास्तव में sto सबमिट करना चाहते हैं बॉब@कॉम.म्यूजियम बजाय Bob@museum.com, उसे क्यों नहीं करने दिया?
हाय रे,
आप Regex का उपयोग करके परीक्षण कर सकते हैं a ऑनलाइन रेगेक्स परीक्षक.
इसके अलावा, यदि आप सुनिश्चित करना चाहते हैं तो निश्चित रूप से बहुत कुछ किया जा सकता है ईमेल पता RFC के अनुसार मान्य है।
किसी को अमान्य ईमेल पता दर्ज करने की अनुमति नहीं देने के कुछ कारण हैं:
1. वे आपसे तब नाराज हो जाते हैं जब उन्हें उम्मीद होती है कि जिस ईमेल के माध्यम से उन्हें नहीं मिलता है - चाहे वह आपकी गलती थी या नहीं, पता गलत दर्ज किया गया था।
2. यदि com.museum एक वैध डोमेन था और, मान लें कि याहू! इसे संचालित किया - कोई भी ईमेल पता जो बाउंस हो गया, ईमेल डिलीवरी के लिए आपकी कंपनी की प्रतिष्ठा पर नकारात्मक प्रभाव पड़ेगा। इससे आपकी कंपनी के सभी ईमेल ब्लॉक हो सकते हैं।
3. यदि आपका ईमेल सेवा प्रदाता आपको प्रवेश करने की अनुमति देता है बॉब@कॉम.म्यूजियम, आप उस ईमेल पते पर भेजे गए प्रत्येक ईमेल के लिए भी भुगतान करेंगे जब तक वे बाउंस के कारण उस पते को अनसब्सक्राइब नहीं कर देते। मैं किसी भी ईएसपी के बारे में स्पष्ट कर दूंगा जो इस तरह से एक अवैध ईमेल पते की अनुमति देगा - वे सिर्फ आपके पैसे ले रहे हैं!
यहां रुकने के लिए शुक्रिया!
डॉग
बिल्कुल सही, बस मुझे क्या चाहिए!
अभिव्यक्ति लिखने का बहुत सरल तरीका है:
var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
- अंतिम संशोधक के साथ / मुझे ऊपरी केस रेंज को इंगित करने की कोई आवश्यकता नहीं है।
- मुझे किसी का पता नहीं है टीएलडी इसमें संख्याओं के साथ।
एक साइड नोट पर, मैं TLD को अधिकतम 6 वर्णों की अनुमति देता हूं; नए लोग नियमित रूप से आते हैं और आप कभी नहीं जानते हैं (ठीक है, भविष्य के लोगों को भी इसमें नंबर मिल सकते हैं, मुझे पता है)।
हाय वहाँ है,
मैं वास्तविक समय में मौजूदा रूप में इसका उपयोग करने की कोशिश कर रहा हूं, लेकिन यह आपके पासवर्ड शक्ति परीक्षक की तरह वास्तविक समय में मान्य नहीं दिखता ...
या, मैं सिर्फ उस अनाड़ी हूँ, और यह मेरे लिए काम कर रहा है?
btw, मुझे वास्तव में पसंद है कि आप यहां क्या कर रहे हैं, आपके ट्यूटोरियल बहुत सरल हैं, मैं निश्चित रूप से इस एक को बुकमार्क करूंगा ...।
सिर्फ एक FYI करें; मैंने एडी के समाधान की कोशिश नहीं की है, लेकिन ऊपर दिए गए पैटर्न में ई-मेल पतों को मान्य नहीं किया गया है .. उनमें (जैसे, Mike.O'Hare@Whatever.com)। Apostrophes RFC 2821/2822 -> के अनुसार मान्य हैं http://www.faqs.org/rfcs/rfc2822.html
एचटीएच,
संजय
यह प्लस वर्ण को संभालने के लिए भी प्रकट नहीं होता है, जो मान्य है।
देखें: http://www.dominicsayers.com/isemail/
एक बड़े नोट पर, यह काटने और चिपकाने वाले कोड के साथ एक महत्वपूर्ण समस्या है, जो अपने आप में एक पूरी चर्चा के योग्य है।
@ robbyslaughter.com
तुम हो नटज ।।
यह ठीक काम कर रहा है ..! @
यदि हम वर्डप्रेस पर टिप्पणियों पर नकली ई-मेल पतों से बचने के लिए एक समाधान पा सकते हैं तो ठीक होगा
बस एक छोटा सुधार: नियमित अभिव्यक्ति के अंत में एक अतिरिक्त () + है। इसे पढ़ना चाहिए:
^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$
पहले किसी भी लम्बाई के साथ TLD को स्वीकार किया जाएगा (जो आंतरिक रूप से गलत नहीं है क्योंकि दूसरों ने बताया है, लेकिन अगर यही इरादा था तो अभिव्यक्ति को छोटा किया जा सकता है)।
क्या आप कृपया इस कोड की नियमित अभिव्यक्ति और इसके काम करने के तरीके के बारे में बता सकते हैं? इसके अलावा .test के बारे में - क्या आपके द्वारा उपरोक्त कोड में की गई चीज़ों की जाँच करने के लिए जावास्क्रिप्ट में एक डिफ़ॉल्ट कथन है?
यह ईमेल अभिव्यक्ति के लिए एक छोटा कोड है-
फ़ंक्शन को मान्य करें (ईमेल)
{
var emailPattern = /^ Isa-zA-Z0-9._-des+@ida-zA-Z0-9।
वापसी emailPattern.test (आईडी);
}
दीपक राय
वाराणसी
यह ईमेल अभिव्यक्ति के लिए एक छोटा कोड है-
फ़ंक्शन को मान्य करें (ईमेल)
{
var emailPattern = /^ Isa-zA-Z0-9._-des+@ida-zA-Z0-9।
वापसी emailPattern.test (आईडी);
}
दीपक राय
वाराणसी
बहुत बहुत धन्यवाद अंकल। इससे मुझे बहुत मदद मिली 🙂
अमांडा
कोड के लिए धन्यवाद!
धन्यवाद, लेकिन इस regex में एक त्रुटि है। मैं रेगेक्स विशेषज्ञ नहीं हूं, लेकिन मैंने ईमेल की कोशिश की:
परीक्षण परीक्षण
और यह regex पारित कर दिया ... मैंने देखा कि यह "भागने" की कमी है। तो यह होना चाहिए:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
Im के साथ रोलिंग
/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$ /
और .info के बारे में क्या है?
ओह बकवास ... 3 साल पहले? : एस
ठीक है, यह सिर्फ एक मोटा चेक है लेकिन 100% सटीक नहीं है, उदाहरण के लिए यह ठीक होगा john_doe। @ gmail.com जो वास्तव में एक वैध ई-मेल पता नहीं है (ई-मेल के स्थानीय भाग में अंतिम पात्र के रूप में डॉट की अनुमति नहीं है)।
यह भी स्वीकार करेंगे john...doe@gmail.com यह भी अमान्य है क्योंकि अनुक्रम में एक से अधिक डॉट नहीं हो सकते।
ये केवल कुछ दोष हैं जिन्हें मैंने पहली नजर में देखा था।
मेरा इरादा सिर्फ इस ओर इशारा करना नहीं है कि अगर कोई इसे सुरक्षा जांच के रूप में इस्तेमाल करने की योजना बना रहा है - तो यह सुरक्षित नहीं है।
मान्य ई-मेल पतों की जानकारी के लिए इसे देखें: http://en.wikipedia.org/wiki/E-mail_address
दीपक,
वास्तव में, मुझे लगता है कि आपको डॉट ("") के लिए एक भागने को लागू करने की आवश्यकता है। इसलिए, आपका कार्य इसके बजाय होना चाहिए:
फ़ंक्शन को मान्य करें (ईमेल)
{
var emailPattern = /^ Isa-zA-Z0-9._-des+@ida-zA-Z0-9।
वापसी emailPattern.test (आईडी);
}
अन्यथा, डॉट का अर्थ होगा "कोई भी चरित्र"। मेरा मानना है कि इस तरह के विशेष पात्रों को बच निकलने की जरूरत है।
सादर,
फेडरिको
फ़ंक्शन को मान्य करें (fld) {
var त्रुटि = "";
var tfld = trim (fld.value); // व्हॉट्सएप के साथ क्षेत्र का मूल्य छंटनी की
var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
var अवैधचार्ज = / [() ;: \ "[]] /;
अगर (fld.value == "अपना ईमेल पता दर्ज करें") {
त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
} और अगर (! emailFilter.test (tfld)) {// अवैध पात्रों के लिए ईमेल का परीक्षण करें
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
} और अगर (fld.value.match (गैरकानूनी)) {
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
}
वापसी त्रुटि;
}
फ़ंक्शन को मान्य करें (fld) {
var त्रुटि = "";
var tfld = trim (fld.value); // व्हॉट्सएप के साथ क्षेत्र का मूल्य छंटनी की
var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
var अवैधचार्ज = / [() ;: \ "[]] /;
अगर (fld.value == "अपना ईमेल पता दर्ज करें") {
त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
} और अगर (! emailFilter.test (tfld)) {// अवैध पात्रों के लिए ईमेल का परीक्षण करें
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
} और अगर (fld.value.match (गैरकानूनी)) {
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
}
वापसी त्रुटि;
}
फ़ंक्शन को मान्य करें (fld) {
var त्रुटि = "";
var tfld = trim (fld.value); // व्हॉट्सएप के साथ क्षेत्र का मूल्य छंटनी की
var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
var अवैधचार्ज = / [() ;: \ "[]] /;
अगर (fld.value == "अपना ईमेल पता दर्ज करें") {
त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
} और अगर (! emailFilter.test (tfld)) {// अवैध पात्रों के लिए ईमेल का परीक्षण करें
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
} और अगर (fld.value.match (गैरकानूनी)) {
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
}
वापसी त्रुटि;
}
फ़ंक्शन को मान्य करें (fld) {
var त्रुटि = "";
var tfld = trim (fld.value); // व्हॉट्सएप के साथ क्षेत्र का मूल्य छंटनी की
var emailFilter = / ^ ई.ऑन.लाइडिंग्स @@.ऑनलाइन।
var अवैधचार्ज = / [() ;: \ "[]] /;
अगर (fld.value == "अपना ईमेल पता दर्ज करें") {
त्रुटि = "कृपया अपना ईमेल पता दर्ज करें। एन";
} और अगर (! emailFilter.test (tfld)) {// अवैध पात्रों के लिए ईमेल का परीक्षण करें
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
} और अगर (fld.value.match (गैरकानूनी)) {
त्रुटि = "कृपया एक वैध ईमेल पता दर्ज करें। एन";
}
वापसी त्रुटि;
}
समारोह ट्रिम (s)
{
वापसी s.replace (/ ^ s + | s + $ /, ”);
}
समारोह ट्रिम (s)
{
वापसी s.replace (/ ^ s + | s + $ /, ”);
}
'.Focus' एक फंक्शन है, यह होना चाहिए:
email.focus ()
'.Focus' एक फंक्शन है, यह होना चाहिए:
email.focus ()
भयानक
मणि की तरह काम करता है .. जावास्क्रिप्ट में…
रत्न में यह दरार ...
पता "mmm @ mmm..com" स्वीकार किया जाएगा। लेकिन एक साथ दो डॉट्स मान्य नहीं हैं।
फेलस, उपयोग। इसे किसी जेएस सत्यापन की आवश्यकता नहीं है।
लेकिन केवल आधुनिक ब्राउज़रों के साथ काम करता है। दुर्भाग्य से, दुनिया अभी तक पकड़ा नहीं है। -
IPhone के लिए मेलबॉक्स से भेजा गया