2012-09-20 12 views
14

मुझे लगता है कि jQuery सत्यापन प्लगइन regex मेरी आवश्यकता के लिए अपर्याप्त होने के लिए। यह किसी भी ईमेल पते [email protected] को मान्य ईमेल पते के रूप में स्वीकार करता है जबकि मैं इस regex /^ ([a-zA-Z0-9_.-+])+\@(([a-zA को आपूर्ति करने में सक्षम होना चाहता हूं -Z0-9 -]) +।) + ([ए-जेए-जेड 0-9] {2,4}) + $/ताकि यह पता के पूर्ण .com भाग को मान्य करे। मैं बेवकूफ सबूत regex प्राप्त करने के बजाय अपने स्वयं के regex की आपूर्ति करने में सक्षम होने के बारे में अधिक चिंतित हूं (क्योंकि ईमेल सत्यापन के लिए कोई मूर्ख सबूत regex नहीं है)jquery मान्य प्लगइन ईमेल पता सत्यापन ओवरराइड

बस FYI: मैं सर्वर पक्ष सत्यापन भी कर रहा हूं लेकिन इस बिंदु पर मैं चिंतित नहीं हूं कि कौन सा ईमेल पता रेगेक्स सही है।

क्या jQuery सत्यापन प्लगइन के "नियम" खंड में ऐसा करने का कोई तरीका है?

यह मेरा नियम अनुभाग अभी है:

rules: { 
         email: { 
          required: { 
            depends:function(){ 
             $(this).val($.trim($(this).val())); 
             return true; 
            } 
           }, 
          email: true 
         }, 

उत्तर

21

मैं ऐसा नहीं होगा, लेकिन एक जवाब आप अपने स्वयं के कस्टम सत्यापन जोड़ने की जरूरत के लिए।

//custom validation rule 
$.validator.addMethod("customemail", 
    function(value, element) { 
     return /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value); 
    }, 
    "Sorry, I've enabled very strict email validation" 
); 
अपने नियमों के

फिर जोड़ने:

rules: { 
        email: { 
         required: { 
           depends:function(){ 
            $(this).val($.trim($(this).val())); 
            return true; 
           } 
          }, 
         customemail: true 
        }, 
+0

यहां एक त्रुटि, regex में: वापसी /^([a-zA-Z0-9_.\-+])+\@ (([एक-zA-Z0-9 -]) +।) + ([एक-zA-Z0-9] {2,4}) + $/परीक्षण (मान);। –

+2

@ टॉम: ईमेल सत्यापन regex गलत है। यह ** 'वापसी /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ होना चाहिए। परीक्षण (मूल्य); '** –

+2

क्या आप कृपया विस्तार से बता सकते हैं कि आप ऐसा क्यों नहीं करेंगे? – wal

6

आपका regex, बस भी सख्त है jQuery सही है।

"this is a valid adress !"@yes.it.is 

मेरा सुझाव है कि आप इस पढ़ने के लिए: Stop Validating Email Addresses With Your Complex Regex

+1

वास्तविक जीवन में, हर किसी के ईमेल पते एक .TLD है और केवल स्पैमर्स बढ़त मामले अक्षर होते हैं। – Acyra

+0

@Acyra आप कोड लिखने के लिए स्वतंत्र हैं जो कभी-कभी और दुर्घटना से काम करता है। लेकिन कई कोडर कोड लिखना पसंद करते हैं जो मानक का पालन करता है और जो सभी ईमेल के साथ काम करता है, न केवल उन लोगों को जो आपने पहले ही देखा है। –

+0

यह मेरे ज्ञान से बाहर है। क्या xxx @ xxx तकनीकी रूप से संभव ईमेल है? (नहीं .xx प्रत्यय)। डिफ़ॉल्ट सत्यापन प्लगइन इसे अनुमति देता है। – Mark

0
// Add Custom Email Validation 
jQuery.validator.addMethod('customemail', function (emailaddr, element) { 
     emailaddr = emailaddr.replace(/\s+/g, ''); 
     return this.optional(element) || 
     emailaddr.match(/^\b[A-Z0-9._%-][email protected]@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i); 
}); 
+0

हालांकि यह कोड प्रश्न का उत्तर दे सकता है, कृपया ओपी को समाधान को समझने में मदद करने के लिए कुछ स्पष्टीकरण प्रदान करने पर विचार करें, और अन्य पाठकों की सहायता करने के लिए जो समान समस्या हो सकती हैं। – CodeMouse92

संबंधित मुद्दे