JQuery और regex का उपयोग करके ईमेल पते मान्य करना


174

मुझे यकीन नहीं है कि यह कैसे करना है। मुझे कुछ इस तरह से regex का उपयोग करके ईमेल पतों को मान्य करना होगा:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)

फिर मुझे इसे इस तरह से jQuery फ़ंक्शन में चलाने की आवश्यकता है:

$j("#fld_emailaddress").live('change',function() { 
var emailaddress = $j("#fld_emailaddress").val();

// validation here? 

if(emailaddress){}

// end validation

$j.ajax({  
        type: "POST",  
         url: "../ff-admin/ff-register/ff-user-check.php",  
        data: "fld_emailaddress="+ emailaddress,  
        success: function(msg)
        { 
            if(msg == 'OK') { 
            $j("#fld_username").attr('disabled',false); 
            $j("#fld_password").attr('disabled',false); 
            $j("#cmd_register_submit").attr('disabled',false); 
            $j("#fld_emailaddress").removeClass('object_error'); // if necessary
            $j("#fld_emailaddress").addClass("object_ok");
            $j('#email_ac').html('&nbsp;<img src="img/cool.png" align="absmiddle"> <font color="Green"> Your email <strong>'+ emailaddress+'</strong> is OK.</font>  ');
            } else {  
            $j("#fld_username").attr('disabled',true); 
            $j("#fld_password").attr('disabled',true); 
            $j("#cmd_register_submit").attr('disabled',true);  
            $j("#fld_emailaddress").removeClass('object_ok'); // if necessary
            $j("#fld_emailaddress").addClass("object_error");
            $j('#email_ac').html(msg);
            }
        }
     });
});

सत्यापन कहां जाता है और अभिव्यक्ति क्या है?


यह भी देखें stackoverflow.com/a/15659649/292060
goodeye

जवाबों:


491

अद्यतन


function isValidEmailAddress(emailAddress) {
    var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
    return pattern.test(emailAddress);
}

if( !isValidEmailAddress( emailaddress ) ) { /* do stuff here */ }

2
धन्यवाद aadeptik के अलावा "लापता" से ई mailaddress अच्छी तरह से काम करता है हाँ पता है कि कोई regex 100% मौजूद है, लेकिन प्राप्त कर सकते हैं "सुंदर" करीब
RussP

1
यह बहुत गहरा नहीं था, लेकिन इसने मुझे पहले ही asdf@adsf.com के लिए एक गलत सकारात्मक संकेत दे दिया
gcb

@gcb: हाय, अगर regex ने आपकी ज़रूरतों को पूरा नहीं किया तो आप इसे बदल सकते हैं, वैसे भी मैंने इसका परीक्षण किया है और यह ठीक काम करता है। jsfiddle.net/ADPaM
Luca Filosofi

14
क्लाइंटसाइड पर अकेले रेगेक्स, यह नहीं जानता कि क्या मेलस्वर है और न ही यदि डोमेन ही मौजूद है। यह किसी भी ईमेल के वाक्यविन्यास के वैध होने या न होने की जाँच करता है। इसका केवल सही पता लिखने वाले उपयोगकर्ता की मदद करना है। इसकी मान्यता नहीं है।
बेरग्रीनडीके

सही काम करता है! धन्यवाद दोस्त

28

यह मेरा समाधान है:

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i);
    // alert( pattern.test(emailAddress) );
    return pattern.test(emailAddress);
};

पाया कि यहाँ पर RegExp: http://mdskinner.com/code/email-regex-and-validation-jewery


3
प्लस साइन के बारे में आपकी बात मान्य है, लेकिन आपका रेगेक्स कम बेहतर है तो मैं अपने उदाहरण में उपयोग कर रहा हूं। पीएस: मैंने प्लस साइन का समर्थन करने के लिए अपने रेगेक्स को अपडेट किया है।
लुका फिलोसोफी

ज्यादातर बार आप केवल यह सत्यापित करना चाहते हैं कि उपयोगकर्ता ने सही प्रारूप में ईमेल दर्ज किया है। "@" के बजाय "2" जैसे टाइपो की पहचान करना। इसलिए मुझे यह मूल उत्तर से बेहतर लगता है लेकिन सेप्टिक का उत्तर व्यापक है और मैंने इसे भी वोट दिया है।

test @ gmail..com इसे कहते हैं वील्ड - गलत, नियमित अभिव्यक्ति बदलें
htngapi

14
$(document).ready(function() {

$('#emailid').focusout(function(){

                $('#emailid').filter(function(){
                   var emil=$('#emailid').val();
              var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
            if( !emailReg.test( emil ) ) {
                alert('Please enter valid email');
                } else {
                alert('Thank you for your valid email');
                }
                })
            });
});

8
वास्तव में यह मददगार था। शीर्षक कहते हैं, JQuery और यह अब तक का एकमात्र उत्तर है जिसमें एक सभ्य jquery उदाहरण है।
टेलर मिशेल

यह abc.b. @ yahoo.com को मान्यता देता है
NoBullMan

7

लोलज़ यह बेहतर है

    function isValidEmailAddress(emailAddress) {
        var pattern = new RegExp(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/);
        return pattern.test(emailAddress);
    };

मैं मोबाइल वेबसाइटों के लिए आपके समाधान को प्राथमिकता देता हूं। दूसरा मेरा स्मार्टफोन पिघलाने के लिए लाएगा;) +1
हेक्सोडस

वाक्यविन्यास समस्या oin जावास्क्रिप्ट
साजि

यह äüõ आदि पत्रों को मान्य नहीं करेगा !!
DAH

5

मेरा सुझाव है कि आप Verimail.js के लिए jQuery प्लगइन का उपयोग करें

क्यों?

  • इनाणा टीएलडी सत्यापन
  • सिंटैक्स सत्यापन (RFC 822 के अनुसार)
  • सबसे सामान्य TLD और ईमेल डोमेन के लिए वर्तनी सुझाव
  • Mailinator.com जैसे अस्थायी ईमेल अकाउंट डोमेन को अस्वीकार करें

कैसे?

अपनी साइट पर verimail.jquery.js शामिल करें और फ़ंक्शन का उपयोग करें:

$("input#email-address").verimail({
    messageElement: "p#status-message"
});

यदि आपके पास एक फॉर्म है और सबमिट पर ईमेल को मान्य करना चाहते हैं, तो आप getVerimailStatus-function का उपयोग कर सकते हैं:

if($("input#email-address").getVerimailStatus() < 0){
    // Invalid email
}else{
    // Valid email
}

1
वेरीमेल, की-अप पर सत्यापन करता रहता है, जिसका अर्थ है, जैसे ही आप टाइप करना शुरू करते हैं, आपको एक त्रुटि संदेश मिलता है। आम तौर पर महान प्लगइन, लेकिन यह एक सौदा ब्रेकर है - मैं केवल तभी मान्य करना पसंद करूंगा, जब मैन्युअल रूप से ट्रिगर किया जाएगा, यानी सबमिट बटन पर क्लिक करने या फ़ील्ड छोड़ने से पहले।
सेबस्टियन श्मिट

1

जावास्क्रिप्ट:

var pattern = new RegExp("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
var result = pattern .test(str);


रेगेक्स के लिए अनुमति नहीं है:

abc@gmail..com
abc@gmail.com..


के लिए अनुमति है:

abc.efg@gmail.com
abc@gmail.com.my

स्रोत: http://www.mkyong.com/ अनियमित-expressions/10- java- अनियमित-expression-examples-you-should-know /


0

हम ईमेल पते को मान्य करने के लिए नियमित अभिव्यक्ति (/ ^((ww.-des+)@( Didww-des+)((-(ww))2,3 Ideal)))//i) का भी उपयोग कर सकते हैं प्रारूप सही है या नहीं।

var emailRegex = new RegExp(/^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$/i);
 var valid = emailRegex.test(emailAddress);
  if (!valid) {
    alert("Invalid e-mail address");
    return false;
  } else
    return true;


0

आप इस फ़ंक्शन का उपयोग कर सकते हैं

 var validateEmail = function (email) {

        var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;


        if (pattern.test(email)) {
            return true;
        }
        else {
            return false;
        }
    };

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.