2012-07-24 8 views
6

संभव डुप्लिकेट:
Validate email address in Javascript?निश्चित रूप से अमान्य ईमेल पते को अस्वीकार करने के लिए कम से कम खराब रेगेक्स क्या है?

मुझे पता है कि केवल रेगुलर एक्सप्रेशन का उपयोग करके एक ईमेल पता मान्य करने के लिए कोई रास्ता नहीं है, लेकिन मुझे लगता है कि मैं कुछ स्पष्ट रूप से अमान्य लोगों को अस्वीकार करने के लिए सक्षम होना चाहिए दोस्ताना उपयोगकर्ताओं की मदद करने के लिए जो गलती से कुछ अलग-अलग दर्ज करते हैं, जैसे ईमेल पता फ़ील्ड में उनका नाम या पासवर्ड। इसलिए, मैं किसी भी वैध ईमेल पते को अस्वीकार नहीं करना चाहता हूं, लेकिन केवल एक रेगेक्स का उपयोग करके जितना संभव हो उतना अमान्य ईमेल प्रारूप अस्वीकार करना चाहता हूं। लेकिन मुझे लगता है कि कोई भी जावास्क्रिप्ट/jquery/... ठीक भी होगा।

^[email protected]+\..+$ 

हाँ, वहाँ वास्तविक सत्यापन के लिए कोई regex है, लेकिन अस्वीकृति के लिए कुछ किया जाना चाहिए:

यहाँ मैं अब तक है। नहीं, यह किसी को नकली पते दर्ज करने से नहीं रोकेगा। हां, आपको अभी भी वास्तविक के लिए मान्य करने के लिए एक पुष्टिकरण ईमेल भेजना होगा।

उपरोक्त regex जावास्क्रिप्ट से उपयोग किया जाएगा।

-

नेट में मैं बजाय, .NET

try 
    { 
     var mailAddress = new MailAddress(possibleMailAddress); 
    } 

और ठीक करता है, तो का उपयोग कर ईमेल प्रारूप को मान्य करते डोमेन भाग के लिए DNS रिकॉर्ड की जांच को देखने के लिए यदि कोई हो सकता है जाएगा ईमेल सर्वर केवल अगर DNS रिकॉर्ड्स स्पष्ट रूप से इंगित करता है कि कोई ईमेल सर्वर नहीं हो सकता है या यदि ऐसा कोई डोमेन नहीं है तो ईमेल पता अस्वीकार कर दिया गया है। फिर भविष्य के लुकअप को तेज करने के लिए कुछ परिणामों को कैश करें।

फिर भी, मैं सत्यापन के लिए पुष्टिकरण ईमेल भेजने के लिए ...

+3

मुझे लगता है कि आप मिल गया है एक यहाँ समझदार regex। हालांकि उनमें किसी भी बिंदु के बिना पते हैं, वे शायद दुर्लभ हैं। –

+0

मैं मानता हूं कि यह सार्वजनिक-सामना करने वाली वेबसाइट के लिए एक बहुत समझदार रेगेक्स है। आप [इस उत्तर] पर विचार करना चाहेंगे (http://stackoverflow.com/a/46181/960195) संबंधित-लेकिन-बिल्कुल-समान प्रश्न "जावास्क्रिप्ट में ईमेल पता मान्य करें?" –

+0

यहां रेगेक्स का उपयोग करके जांच की विभिन्न डिग्री की चर्चा की बहुत सारी चर्चाएं: http://stackoverflow.com/questions/46155/validate-email-address-in-javascript। मुझे एक डुप्लिकेट सवाल की तरह लगता है। – jfriend00

उत्तर

4

आधिकारिक मानक RFC 2822 वाक्य रचना है कि इस नियमित अभिव्यक्ति के साथ मान्य ईमेल पते का वर्णन करता है:

(?:[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])+)\]) 
संबंधित मुद्दे