JQuery এবং regex ব্যবহার করে ইমেল ঠিকানা বৈধকরণ


174

আমি কীভাবে এটি করব তা নিশ্চিত নই। এই জাতীয় কিছু সহ আমি রেজিেক্স ব্যবহার করে ইমেল ঠিকানাগুলি যাচাই করতে হবে:

[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
ধন্যবাদ সেপটিককে "মিসিং" ছাড়াও মাইলড্রেস ই ই ভালভাবে কাজ করে হ্যাঁ জেনে রাখুন যে কোনও রেইজেক্স 100% বিদ্যমান নেই, তবে "সুন্দর" কাছাকাছি পেতে পারেন
রাশিপ

1
তাও আবার গভীর যাচাই করা হয়নি, কিন্তু এটা ইতিমধ্যে আমার জন্য asdf@adsf.com একটি মিথ্যা ইতিবাচক দিলেন
gcb

@ জিসিবি: হাই, যদি রেজেক্স আপনার চাহিদা পূরণ না করে তবে আপনি এটি পরিবর্তন করতে পারেন, যাইহোক আমি এটি পরীক্ষা করে দেখেছি এবং এটি ভাল কাজ করে। jsfiddle.net/ADPaM
লুকা ফিলোসফি

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-)ation-jquery


3
প্লাস সাইন সম্পর্কে আপনার বক্তব্যটি বৈধ, তবে আপনার উদাহরণটি আমার উদাহরণটিতে ব্যবহার করা হলে তার থেকে কম ভাল। PS: আমি প্লাস চিহ্নটি সমর্থন করতে আমার রেজেক্স আপডেট করেছি।
লুকা ফিলোসোফি

বেশিরভাগ সময় আপনি কেবল যাচাই করতে চান যে ব্যবহারকারী সঠিক ফর্ম্যাটে ইমেলটি প্রবেশ করেছে। "@" এর পরিবর্তে "2" এর মতো টাইপগুলি সনাক্ত করতে। সুতরাং আমি এটি মূল উত্তরের চেয়ে ভাল পছন্দ করি তবে এসপটিকের উত্তরটি ব্যাপক এবং আমি এটিও আপ-ভোট দিয়েছি।
দারওয়িন্দেডস

পরীক্ষা @ gmail..com এটি বলছে
ভ্রং

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 উদাহরণ রয়েছে।
টেলর মিচেল

এটি abc.b. @ yahoo.com
NoBullMan

7

লোলজ এটি আরও ভাল

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

আমি মোবাইল ওয়েবসাইটগুলির জন্য আপনার সমাধানটি পছন্দ করি। অন্যটি আমার স্মার্টফোনটি দ্রবীভূত করতে আনবে;) +1
হেক্সডাস

জাভাস্ক্রিপ্ট oin সিনট্যাক্স সমস্যা
Sajith

এটি äüõ ইত্যাদি অক্ষরগুলিকে বৈধতা দেবে না !!
ডিএএইচ

5

আমি আপনাকে সুপারিশ করব যে আপনি Verimail.js এর জন্য jQuery প্লাগইন ব্যবহার করুন

কেন?

  • আইএএনএ টিএলডি বৈধতা
  • সিনট্যাক্স বৈধতা (আরএফসি 822 অনুযায়ী)
  • সর্বাধিক সাধারণ টিএলডি এবং ইমেল ডোমেনগুলির জন্য বানানের পরামর্শ
  • মেলিনেটর ডট কমের মতো অস্থায়ী ইমেল অ্যাকাউন্ট ডোমেনগুলি অস্বীকার করুন

কিভাবে?

আপনার সাইটে verimail.jquery.js অন্তর্ভুক্ত করুন এবং ফাংশনটি ব্যবহার করুন:

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

আপনার যদি কোনও ফর্ম থাকে এবং জমা দেওয়ার সময় ইমেলটি বৈধ করতে চান, আপনি getVerimailStatus- ফাংশনটি ব্যবহার করতে পারেন:

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

1
ভেরিমেইল কীআপে বৈধতা রাখে যার অর্থ আপনি টাইপ করা শুরু করার সাথে সাথেই আপনি একটি ত্রুটি বার্তা পান। সাধারনত দুর্দান্ত প্লাগইন, তবে এটি একটি ডিল ব্রেকার - আমি নিজে থেকেই ট্রিগার করার সময়, যেমন সাবমিট বোতামটি ক্লিক করার আগে বা ক্ষেত্রটি ছেড়ে যাওয়ার আগে বৈধতা দিতে পছন্দ করব।
সেবাস্তিয়ান শ্মিড


0

আমরা ইমেল ঠিকানা যাচাই করতে নিয়মিত এক্সপ্রেশনও ব্যবহার করতে পারি ফর্ম্যাট সঠিক বা না।

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;
        }
    };

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.