JQuery ব্যবহার করে ইমেল বৈধতা


356

আমি jQuery এ নতুন এবং ইমেল ঠিকানাগুলি যাচাই করতে এটি কীভাবে ব্যবহার করব তা ভাবছিলাম।


কোনও ইমেল ঠিকানা "বৈধতা" দেওয়ার চেষ্টা করার আগে, আপনার এটি পড়তে হবে: হ্যাকারুনুন.com/…
মিক্কো রেন্টালাইনেন

উত্তর:


703

আপনি এটির জন্য নিয়মিত পুরানো জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন:

function isEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return regex.test(email);
}

66
হ্যাঁ এটি হবে, মনে রাখবেন jQuery এখনও জাভাস্ক্রিপ্ট :)
ফ্যাবিয়ান

36
যদিও এই রেজিএক্সএক্স বেশিরভাগ বাস্তব বিশ্বের ঠিকানাগুলিকে বৈধ বলে মনে করে, তবুও এর প্রচুর মিথ্যা ইতিবাচক এবং মিথ্যা নেতিবাচক রয়েছে। উদাহরণস্বরূপ, উইকিপিডিয়ায় বৈধ এবং অবৈধ ইমেল ঠিকানাগুলির উদাহরণগুলি দেখুন ।
আর্সেনি

1
@ উমিংগো ইমেল@127.0.0.1 এখনও বৈধ ই-মেইল, তবে এটি আরও ভাল উপায়ে লেখা যেতে পারে। ডোমেনের কোনও অংশই [a-z0-9] (ক্ষেত্রে সংবেদনশীল) ব্যতীত অন্য চরের সাথে শুরু করতে পারে না। এছাড়াও, বৈধ ই-মেইল (এবং ডোমেন) এর কিছু লেন সীমা রয়েছে, যা পরীক্ষাও করা হয় না।
টমিস

10
নতুন শীর্ষ স্তরের ডোমেনগুলি আরও সাধারণ হয়ে ওঠার সাথে সাথে এই রেজেক্সের জন্য। সিস্টেম এবং .পোকার ইত্যাদি সংশোধন করার প্রয়োজন হতে পারে এখন সমস্ত বৈধ টিএলডি তবে রেজেেক্স চেকটি ব্যর্থ হবে
লিথ

3
অন্য উত্তর সম্পর্কে থিওর মন্তব্য, আপনার নতুন টিএলডি'র মত। মিউজিয়াম ইত্যাদি সমর্থন var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;করার var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,6})+$/;জন্য পরিবর্তন করা উচিত
হারমান

164

ইমেল যাচাই করার জন্য jQuery ফাংশন

আমি সত্যিই প্লাগিনগুলি ব্যবহার করতে পছন্দ করি না, বিশেষত যখন আমার ফর্মটিতে কেবল একটি ক্ষেত্র রয়েছে যা বৈধ হওয়া দরকার। আমি এই ফাংশনটি ব্যবহার করি এবং যখনই আমার কোনও ইমেল ফর্ম ক্ষেত্রটি যাচাই করার প্রয়োজন হয় it

 function validateEmail($email) {
  var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  return emailReg.test( $email );
}

এবং এখন এটি ব্যবহার করতে

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

চিয়ার্স!


16
আপনার সবেমাত্র ফিরে আসা উচিতemailReg.test($email);
nffdiogosilva

7
খালি এফওয়াইআই এটি ফাঁকা ইমেল ঠিকানার জন্য সত্য দেয়। যেমন emailReg.text("") true। আমি কেবল তখনই ইমেলটির ঘোষণার জন্য ফাংশনটি করতাম রেগ return ( $email.length > 0 && emailReg.test($email))
ভেরি

14
যেহেতু আমরা এখন .museum মত 6 অক্ষর সঙ্গে DOMAINNAME এক্সটেনশান নেই EMAILADDRESS বৈধতা চেক করার জন্য Regex পুরানো হয়, তজ্জন্য আপনি পরিবর্তন করতে চাইবেন var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;করারvar emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/;
থিও

3
ঠিক আপনি @ h.coates! আমি এই থ্রেডে এসেছি আশা করি যে jQuery এর ইমেল বৈধতাটি আসলে একটি বিল্ট ইন ছিল। পাশাপাশি চলুন, এগুলি আপনি যে সন্ধান করছেন তা নয় ...
আইজিঞ্জা

3
@ থিওর বক্তব্যটি গুরুত্বপূর্ণ, তবে টিএলডির আসল দৈর্ঘ্য than-এর বেশি হওয়া উচিত, এক্সটেনশনের তাত্ত্বিক উপরের সীমা 63৩ টি অক্ষর। বর্তমানে দীর্ঘতম এক 20 দেখতে data.iana.org/TLD/tlds-alpha-by-domain.txt
Jeroenv3

41

আমি কয়েকটি কারণে jQuery বৈধতা প্লাগইন ব্যবহার করব।

আপনি বৈধতা দিয়েছেন, ঠিক আছে, এখন কি? আপনার ত্রুটিটি প্রদর্শন করতে হবে, এটি কার্যকর হওয়ার পরে মুছে ফেলতে হ্যান্ডেল করুন, মোট কতগুলি ত্রুটি সম্ভবত প্রদর্শিত হবে? এটি আপনার পক্ষে পরিচালনা করতে পারে এমন প্রচুর জিনিস রয়েছে, চাকাটি পুনরায় উদ্ভাবনের দরকার নেই।

এছাড়াও, আরও একটি বিশাল সুবিধা এটি একটি সিডিএন-তে হোস্ট করা হয়েছে, এই উত্তরের সময়কার বর্তমান সংস্করণটি এখানে পাওয়া যাবে: http://www.asp.net/ajaxLibrary/CDNjQueryValidate16.ashx এর অর্থ ক্লায়েন্টের জন্য দ্রুত লোডের সময়।


6
ঠিক আছে ... চাকা পুনর্বিবেচনার দরকার নেই। তবে কেন কোনও ক্ষেত্রকে বৈধতা দেওয়ার জন্য আমাকে কয়েক হাজার কেবাইট জাভাস্ক্রিপ্ট ইনস্টল করতে হবে। এটি আপনার কারখানার কারখানা তৈরির মতো, যদি আপনার দরকার হয় একটি নতুন চাকা :)
kraftb

3
@ ক্র্যাফটব আমার উত্তরে যেমন বলা হয়েছে, এটি কেবল পাঠ্যকে বৈধতা দেওয়ার জন্য নয়, যাচাইকরণের আশেপাশে পরিচালনা ও প্রদর্শন।
নিক ক্র্যাভার

5
এই @ নিকক্রাভারের জন্য ধন্যবাদ: এটি ইমেলটির বৈধতা হ্যান্ডলিংয়ের সমস্যাটির জন্য একটি "সেরা অনুশীলন" পদ্ধতির বলে মনে হচ্ছে। এটি অবশ্যই একটি চাকা পাওয়ার জন্য একটি কারখানা তৈরি করার মতো নয় (সমস্ত কাজ করার জন্য লিবগুলি লিখে দেওয়া)। এটি কীভাবে আপনার গাড়িতে কোনও ওয়াগন চাকা পেতে হবে তা বোঝার চেষ্টা না করে আধুনিক গাড়িতে চাকাটি ইনস্টল করার জন্য কারখানাটির নির্দেশাবলী অনুসরণ করার মতো (গাড়িটি জ্যাক করুন, চাকাটি লাগান - লুগ বাদাম লাগান)। এই প্লাগইনটি ব্যবহার করা অত্যন্ত সহজ। ফর্মটি যাচাই করার জন্য এটি আক্ষরিক অর্থে একটি অন্তর্ভুক্ত, কিছু টিকা এবং একটি একক পদ্ধতি কল।
jfgrissom

3
এখন আপনি 'পুনর্নবীকরণ চাকা' রূপকটি পুনর্নবীকরণ করছেন!
ডম ভিনিয়ার্ড

ওয়েবফোর্স অ্যাপ্লিকেশনগুলিতে এনকোসিয়া.com
-জেকুরি-

38

এ লুক HTTP: //bassistance.de/jquery-plugins/jquery-plugin-validation/ । এটি দুর্দান্ত jQuery প্লাগইন, যা ফর্মগুলির জন্য পাওয়ারফুল বৈধকরণ সিস্টেম তৈরি করতে দেয়। এখানে কিছু ব্যবহারযোগ্য নমুনা রয়েছে । সুতরাং, ফর্ম ইমেল ক্ষেত্রের বৈধতা দেখতে হবে:

$("#myform").validate({
  rules: {
    field: {
      required: true,
      email: true
    }
  }
});

দেখা বিশদ এবং নমুনার জন্য ইমেল পদ্ধতির ডকুমেন্টেশন


1
শেষটি এখনও বেঁচে আছে)
অ্যান্ড্রু বাশত্নানিক

6
তবে স্বীকৃত ফর্ম্যাটটি x@x(অদ্ভুতভাবে আবশ্যক) এটি অবশ্যই x@x.xআমি কীভাবে এটি ঠিক করতে পারি?
বশির আল-মোমনি

2
@ বাশিরাল-মোমানী [ jqueryediaation.org/jQuery. লাডিয়েটার.মোথডস /] $.validator.methods.email = function( value, element ) { return this.optional( element ) || //^.+@.+\..+$/.test( value ); }
বিল গিলিংহাম

16
<script type="text/javascript">
    $(document).ready(function() {
      $('.form_error').hide();
      $('#submit').click(function(){
           var name = $('#name').val();
           var email = $('#email').val();
           var phone = $('#phone').val();
           var message = $('#message').val();
           if(name== ''){
              $('#name').next().show();
              return false;
            }
            if(email== ''){
               $('#email').next().show();
               return false;
            }
            if(IsEmail(email)==false){
                $('#invalid_email').show();
                return false;
            }

            if(phone== ''){
                $('#phone').next().show();
                return false;
            }
            if(message== ''){
                $('#message').next().show();
                return false;
            }
            //ajax call php page
            $.post("send.php", $("#contactform").serialize(),  function(response) {
            $('#contactform').fadeOut('slow',function(){
                $('#success').html(response);
                $('#success').fadeIn('slow');
               });
             });
             return false;
          });
      });
      function IsEmail(email) {
        var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if(!regex.test(email)) {
           return false;
        }else{
           return true;
        }
      }
  </script>

<form action="" method="post" id="contactform">
                            <table class="contact-table">
                              <tr>
                                <td><label for="name">Name :</label></td>
                                <td class="name"> <input name="name" id="name" type="text" placeholder="Please enter your name" class="contact-input"><span class="form_error">Please enter your name</span></td>
                              </tr>
                              <tr>
                                <td><label for="email">Email :</label></td>
                                <td class="email"><input name="email" id="email" type="text" placeholder="Please enter your email" class="contact-input"><span class="form_error">Please enter your email</span>
                                  <span class="form_error" id="invalid_email">This email is not valid</span></td>
                              </tr>
                              <tr>
                                <td><label for="phone">Phone :</label></td>
                                <td class="phone"><input name="phone" id="phone" type="text" placeholder="Please enter your phone" class="contact-input"><span class="form_error">Please enter your phone</span></td>
                              </tr>
                              <tr>
                                <td><label for="message">Message :</label></td>
                                <td class="message"><textarea name="message" id="message" class="contact-input"></textarea><span class="form_error">Please enter your message</span></td>
                              </tr>
                              <tr>
                                <td></td>
                                <td>
                                  <input type="submit" class="contactform-buttons" id="submit"value="Send" />
                                  <input type="reset" class="contactform-buttons" id="" value="Clear" />
                                </td>
                              </tr>
                            </table>
     </form>
     <div id="success" style="color:red;"></div>

15

<!-- Dont forget to include the jQuery library here -->
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">

$(document).ready(function() {

    $("#validate").keyup(function(){

        var email = $("#validate").val();

        if(email != 0)
        {
            if(isValidEmailAddress(email))
            {
                $("#validEmail").css({
                    "background-image": "url('validYes.png')"
                });
            } else {
                $("#validEmail").css({
                    "background-image": "url('validNo.png')"
                });
            }
        } else {
            $("#validEmail").css({
                "background-image": "none"
            });         
        }

    });

});

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}

</script>

<style>
    #validEmail
    {
        margin-top: 4px;
        margin-left: 9px;
        position: absolute;
        width: 16px;
        height: 16px;
    }

    .text
    {
        font-family: Arial, Tahoma, Helvetica;
    }
</style>

    <title>Live Email Validation with jQuery Demo</title>
</head>
<body>
    <div class="text"><h1>Reynoldsftw.com - Live Email Validation</h1><h2>Type in an email address in the box below:</h2></div>
    <div><input type="text" id="validate" width="30"><span id="validEmail"></span></div>
    <div class="text"><P>More script and css style

: www.htmldrive.net


উত্স: htmldrive.com


14

আমি Verimail.js এর পরামর্শ দেব , এটিতে একটি জিকুয়েরি প্লাগইন রয়েছে

কেন? ভেরিমেইল নিম্নলিখিতগুলি সমর্থন করে:

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

সুতরাং বৈধতার পাশাপাশি Verimail.js আপনাকে পরামর্শও দেয়। সুতরাং আপনি যদি ভুল টিএলডি বা ডোমেনের সাথে কোনও ইমেল টাইপ করেন যা একটি সাধারণ ইমেল ডোমেনের (হটমেইল ডটকম, জিমেইল ডটকম, ইত্যাদি) অনুরূপ, তবে এটি এটি সনাক্ত করতে পারে এবং সংশোধনের পরামর্শ দিতে পারে।

উদাহরণ:

  • test@gnail.con -> আপনি কি @ gmail.com পরীক্ষাটি বোঝাতে চেয়েছিলেন ?
  • test@hey.nwt -> আপনি কি পরীক্ষা বোঝাতে চেয়েছিলেন @ আরে। নেট ?
  • test@hottmail.com -> আপনি কি বোঝাতে চেয়েছেন পরীক্ষা @ কি hotmail.com ?

এবং তাই ..

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

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

বার্তা উপাদান এমন একটি উপাদান যেখানে কোনও বার্তা প্রদর্শিত হবে। এটি "আপনার ইমেলটি অবৈধ" থেকে "আপনার মানে ...?" থেকে সবকিছু হতে পারে।

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

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

Comfirm.AlphaMail.Verimail.Status অবজেক্ট অনুযায়ী এই ফাংশনটি একটি পূর্ণসংখ্যার স্থিতি কোড দেয়। তবে থাম্বের সাধারণ নিয়ম হল যে নীচের যে কোনও কোডগুলি কোডগুলি ত্রুটিগুলি নির্দেশ করে।


.getVerimailStatus()ফেরত দেয় না সাংখ্যিক অবস্থা কোড, শুধু একটি স্ট্রিং মান success, errorসম্ভবত বা pending(শেষ এক যাচাই করা হয়নি)।
নিকো নাইম্যান

14

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 (email is invalid) */ }

এই ব্যবহারকারীর দ্বারা সরবরাহ করা হয়েছিল লুকা Filosofi এই উত্তরে এই উত্তর


আপনি যদি এএসপি.নেট এমভিসি রেজার পৃষ্ঠায় এটি ব্যবহার @করেন তবে অন্য একটি @চরিত্রের সাহায্যে চরিত্রটি পালাতে ভুলবেন না । পছন্দ করুন @@, অন্যথায় আপনি বিল্ড ত্রুটি পাবেন।
রোসদী কাশিম

11

খুব সহজ সমাধান হ'ল এইচটিএমএল 5 বৈধতা ব্যবহার করা:

<form>
  <input type="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}">

  <input type="submit">
</form>

http://jsfiddle.net/du676/56/


10

এটি আরও পুঙ্খানুপুঙ্খ বৈধতা সম্পাদন করে, উদাহরণস্বরূপ এটি জন..ডো @ উদাহরণ.com এর মতো ব্যবহারকারীর নামটিতে ক্রমাগত বিন্দুগুলির বিরুদ্ধে পরীক্ষা করে

function isValidEmail(email)
{
    return /^[a-z0-9]+([-._][a-z0-9]+)*@([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,4}$/.test(email)
        && /^(?=.{1,64}@.{4,64}$)(?=.{6,100}$).*/.test(email);
}

জাভাস্ক্রিপ্টে নিয়মিত এক্সপ্রেশন ব্যবহার করে বৈধ ইমেল ঠিকানাটি দেখুন ।


1
তবে ধারাবাহিক বিন্দু কি আসলেই অবৈধ? বিপরীতে আমি মনে করি আপনি এটি করে বৈধ ইমেল ঠিকানাগুলি বাদ দিবেন।
ইকটোফায়

9

অন্যরা যেমন উল্লেখ করেছে আপনি ইমেল ঠিকানাটি কোনও প্যাটার্নের সাথে মেলে কিনা তা পরীক্ষা করতে আপনি একটি রেজেক্স ব্যবহার করতে পারেন। তবে আপনার কাছে এখনও এমন ইমেল থাকতে পারে যা প্যাটার্নের সাথে মেলে তবে আমার তবুও বাউন্স বা নকল স্প্যাম ইমেল হতে পারে।

একটি রেজেক্স দিয়ে পরীক্ষা করা হচ্ছে

var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);

একটি সত্যিকারের ইমেল বৈধতা API দিয়ে পরীক্ষা করা

আপনি এমন একটি এপিআই ব্যবহার করতে পারেন যা ইমেল ঠিকানাটি আসল এবং বর্তমানে সক্রিয় কিনা তা পরীক্ষা করবে।

var emailAddress = "foo@bar.com"
response = $.get("https://isitarealemail.com/api/email/validate?email=" +
    emailAddress,
    function responseHandler(data) {
        if (data.status === 'valid') {
            // the email is valid and the mail box is active
        } else {
            // the email is incorrect or unable to be tested.
        }
    })

আরও জানতে https://isitarealemail.com বা ব্লগ পোস্ট দেখুন


8

আপনার যদি কোনও প্রাথমিক ফর্ম থাকে তবে কেবল ইমেলটির ইনপুট প্রকারটি তৈরি করুন: <input type="email" required>

এটি এমন ব্রাউজারগুলির জন্য কাজ করবে যা এইচটিএমএল 5 বৈশিষ্ট্য ব্যবহার করে এবং তারপরে আপনার জেএসের প্রয়োজনও নেই। উপরের কিছু স্ক্রিপ্ট সহ কেবল ইমেল বৈধতা ব্যবহার করা এর পরে তেমন কিছু করবে না:

some@email.com so@em.co my@fakemail.net

ইত্যাদি ... সবই "বাস্তব" ইমেল হিসাবে বৈধতা দেবে? সুতরাং ব্যবহারকারীরা যাতে তাদের একই ঠিকানাটি রেখেছিলেন তা নিশ্চিত করার জন্য ব্যবহারকারীকে তাদের ইমেল ঠিকানাটি দুবার প্রবেশ করতে হবে তা নিশ্চিত করার চেয়ে আপনি আরও ভাল But উপায়। তবে আপনি যদি নিশ্চিত হয়ে থাকেন যে এটি কোনও ইমেল, তবে HTML5 ইনপুটটিতে আটকে থাকুন।

ছোট্ট উদাহরণ

এটি ফায়ারফক্স এবং ক্রোমে কাজ করে। এটি ইন্টারনেট এক্সপ্লোরারে কাজ নাও করতে পারে ... তবে ইন্টারনেট এক্সপ্লোরার সফল হয়। সুতরাং সেখানে যে ...


রিজেক্সপ পদ্ধতিটি সাধারণত @ বিসি (যেমন আপনার লিঙ্কযুক্ত জেএসফিডাল উদাহরণটি সর্বশেষ ক্রোম ব্যবহারের অনুমতি দেয়) এর মতো পরিষ্কার ইমেলগুলি প্রতিরোধ করে, তাই HTML5 সমাধানটি স্পষ্টতই অপর্যাপ্ত সমাধান।
স্নোইনফর্নো

শীতল। সুতরাং এইচটিএমএল 5 এর মতো প্যাটার্ন ম্যাচটি কীভাবে করা উচিত "অনুমিত"? আপনি কেন আপনার ক্রোমবুকটিতে এটি ব্যবহার করে দেখছেন না
isaac weathers

8

এমভিসি / এএসপি.নেটে জাভাস্ক্রিপ্ট ইমেল বৈধকরণ

ফ্যাবিয়ার উত্তরটি ব্যবহার করার সময় আমি যে সমস্যার মুখোমুখি হয়েছি, তা রেজার @চিহ্নের কারণে এটি এমভিসি ভিউতে প্রয়োগ করছে । @এটি থেকে বাঁচতে আপনাকে একটি অতিরিক্ত প্রতীক অন্তর্ভুক্ত করতে হবে, যেমন:@@

এমভিসিতে রেজার এড়ানোর জন্য

function isEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return regex.test(email);
}

আমি এই পৃষ্ঠায় এটি অন্য কোথাও দেখতে পাইনি, তাই আমি ভেবেছিলাম এটি সহায়ক হতে পারে।

সম্পাদনা

মাইক্রোসফ্ট এর ব্যবহার সম্পর্কে বর্ণনা করে একটি লিঙ্ক এখানে's
আমি কেবল উপরের কোডটি পরীক্ষা করেছি এবং নিম্নলিখিত জেএস পেয়েছি:

function validateEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
  return regex.test(email);
}

এটি ঠিক কি করছে যা এটি করার কথা ছিল।


@nbrogi আপনার অর্থ কি এই কাজ করে না? আমি কেবল এটি আবার যাচাই করেছি এবং এটি নিম্নলিখিত কোডগুলি তৈরি করে var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; আপনার কোডে কী ঘটছে?
ট্রেভর নেস্টম্যান

দুঃখিত, আমি এই মুহূর্তে নিশ্চিত নই, আমি এটি সম্পূর্ণরূপে পরিবর্তন করেছি।
nkkollaw

আপনি যখন পারেন দয়া করে আমাকে জানান। এটি যদি খারাপ তথ্য হয় তবে আমি এটি নামিয়ে নেব। সম্ভব হলে আমি সহায়ক তথ্যের অবদান রাখার চেষ্টা করি এবং এমভিসি ভিউতে একটি রেজেেক্স লেখার সময় এটি আমাকে সহায়তা করেছিল।
ট্রেভর নেস্টম্যান

আবার, আমি জানতে চাই কেন এটি হ্রাসযুক্ত। এটি ঠিক তাই করছে যা আমি এটি করতে চাই যা @একটি রেইজেক্সে প্রতীক তৈরি করে .cshtml। সাধারণত এটি @প্রতীকের পরে সবকিছুকে রেজার কোড হিসাবে বিবেচনা করার চেষ্টা করবে , তবে ডাবল এটি @@আটকায়।
ট্রেভর নেস্টম্যান

আমি যে প্রধান সমস্যাটি দেখি তা দ্বিতীয়
কোডব্লকের মধ্যে রয়েছে আপনার রেজেেক্সটি

7
function isValidEmail(emailText) {
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\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]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([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(emailText);
};

এটির মতো ব্যবহার করুন:

if( !isValidEmail(myEmail) ) { /* do things if myEmail is valid. */ }

6
function validateEmail(emailaddress){  
   var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;  
   if(!emailReg.test(emailaddress)) {  
        alert("Please enter valid email id");
   }       
}

5
<script type = "text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type = "text/javascript">
    function ValidateEmail(email) {
        var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        return expr.test(email);
    };
    $("#btnValidate").live("click", function () {
        if (!ValidateEmail($("#txtEmail").val())) {
            alert("Invalid email address.");
        }
        else {
            alert("Valid email address.");
        }
    });
</script>
<input type = "text" id = "txtEmail" />
<input type = "button" id = "btnValidate" value = "Validate" />

4

এখানে অবতরণ ..... এখানেই শেষ: https://html.spec.omotwg.org/m

... যা নিম্নলিখিত রেজেক্স সরবরাহ করেছে:

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

... যা আমি jQuery বৈধকরণ প্লাগইন রিডমে একটি নোটের জন্য ধন্যবাদ পেয়েছি: https://github.com/jzaefferer/jquery-uthoration/blob/master/README.md#reporting-an-issue

সুতরাং, এর আপডেট করা সংস্করণ @Fabian এর উত্তর হবে:

function IsEmail(email) {
  var regex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
  return regex.test(email);
}

আশা করি এইটি কাজ করবে


এইটি আমার জন্য সেরা উত্তর ছিল - এটি সত্য হয়েছিল john..doe@example.comতবে এটি মিথ্যা হতে চাই
অ্যাডাম নাইটস

3

এটা ব্যবহার কর

if ($this.hasClass('tb-email')) {
    var email = $this.val();
    var txt = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!txt.test(email)) {
        e.preventDefault();
        $this.addClass('error');
    } else {
        $this.removeClass('error');
    }
}

3

বাগ Jquery বৈধকরণ যাচাইকরণ প্লাগইন এ আছে এটি পরিবর্তন করতে কেবল @ এর সাথে বৈধতা দেয়

এই কোড পরিবর্তন করুন

email: function( value, element ) {
    // From http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#e-mail-state-%28type=email%29
    // Retrieved 2014-01-14
    // If you have a problem with this implementation, report a bug against the above spec
    // Or use custom methods to implement your own email validation
    return this.optional( element ) || /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test( value );
}

3

যারা আরও ভাল রক্ষণাবেক্ষণ করতে চান তাদের জন্য -দীর্ঘ-রেজিএক্স ম্যাচের চেয়ে সমাধানটি আমি কয়েকটি লাইনের কোড লিখেছি। যেগুলি বাইটস সংরক্ষণ করতে চান, তারা রেজিএক্স বৈকল্পিকটি আটকে দিন :)

এটি সীমাবদ্ধ করে:

  • @ স্ট্রিংয়ে নেই
  • স্ট্রিংয়ে কোনও বিন্দু নেই
  • @ এর পরে 2 টিরও বেশি বিন্দু
  • ব্যবহারকারীর নাম (@ আগে) এর খারাপ অক্ষর
  • স্ট্রিং 2 টিরও বেশি
  • ডোমেনে খারাপ অক্ষর
  • সাবডোমেনে খারাপ অক্ষর
  • টিএলডিতে খারাপ অক্ষর
  • টিএলডি - ঠিকানা

যাইহোক, এটির মাধ্যমে ফাঁস হওয়া এখনও সম্ভব, সুতরাং আপনি এটি একটি সার্ভার-সাইডের বৈধতা + ইমেল-লিঙ্ক যাচাইকরণের সাথে একত্রিত করে নিশ্চিত হন।

এখানে জেএসফিডাল

 //validate email

var emailInput = $("#email").val(),
    emailParts = emailInput.split('@'),
    text = 'Enter a valid e-mail address!';

//at least one @, catches error
if (emailParts[1] == null || emailParts[1] == "" || emailParts[1] == undefined) { 

    yourErrorFunc(text);

} else {

    //split domain, subdomain and tld if existent
    var emailDomainParts = emailParts[1].split('.');

    //at least one . (dot), catches error
    if (emailDomainParts[1] == null || emailDomainParts[1] == "" || emailDomainParts[1] == undefined) { 

        yourErrorFunc(text); 

     } else {

        //more than 2 . (dots) in emailParts[1]
        if (!emailDomainParts[3] == null || !emailDomainParts[3] == "" || !emailDomainParts[3] == undefined) { 

            yourErrorFunc(text); 

        } else {

            //email user
            if (/[^a-z0-9!#$%&'*+-/=?^_`{|}~]/i.test(emailParts[0])) {

               yourErrorFunc(text);

            } else {

                //double @
                if (!emailParts[2] == null || !emailParts[2] == "" || !emailParts[2] == undefined) { 

                        yourErrorFunc(text); 

                } else {

                     //domain
                     if (/[^a-z0-9-]/i.test(emailDomainParts[0])) {

                         yourErrorFunc(text); 

                     } else {

                         //check for subdomain
                         if (emailDomainParts[2] == null || emailDomainParts[2] == "" || emailDomainParts[2] == undefined) { 

                             //TLD
                             if (/[^a-z]/i.test(emailDomainParts[1])) {

                                 yourErrorFunc(text);

                              } else {

                                 yourPassedFunc(); 

                              }

                        } else {

                             //subdomain
                             if (/[^a-z0-9-]/i.test(emailDomainParts[1])) {

                                 yourErrorFunc(text); 

                             } else {

                                  //TLD
                                  if (/[^a-z]/i.test(emailDomainParts[2])) {

                                      yourErrorFunc(text); 

                                  } else {

                                      yourPassedFunc();
}}}}}}}}}

3

আপনি jQuery বৈধকরণ ব্যবহার করতে পারেন এবং, একটি একক এইচটিএমএল লাইনে, আপনি ইমেল এবং ইমেল বৈধতা বার্তাটি যাচাই করতে পারেন:type="email" required data-msg-email="Enter a valid email account!"

আপনি কোনও ব্যক্তিগতকৃত বার্তা রাখতে ডেটা-ইমেল-ইমেল পরামিতি ব্যবহার করতে পারেন বা অন্যথায় এই প্যারামিটারটি রাখবেন না এবং ডিফল্ট বার্তাটি প্রদর্শিত হবে: "দয়া করে একটি বৈধ ইমেল ঠিকানা লিখুন" "

সম্পূর্ণ উদাহরণ:

<form class="cmxform" id="commentForm" method="get" action="">
  <fieldset>
    <p>
      <label for="cemail">E-Mail (required)</label>
      <input id="cemail" type="email" name="email" required data-msg-email="Enter a valid email account!">
    </p>
    <p>
      <input class="submit" type="submit" value="Submit">
    </p>
  </fieldset>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.17.0/dist/jquery.validate.js"></script>
<script>
$("#commentForm").validate();
</script>

2
if($("input#email-address").getVerimailStatus() < 0) { 

(incorrect code)

}

if($("input#email-address").getVerimailStatus() == 'error') { 

(right code)

}

9
আপনি কি নিজের উত্তরটি বিস্তারিত বর্ণনা করতে পারেন ... উদাহরণস্বরূপ আপনার উল্লেখ করা উচিত যে getVerimailStatus একটি অতিরিক্ত প্লাগইন।
ডেভ হোগান

2
checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\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]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([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, "eg. ui@jquery.com" );

তথ্যসূত্র: জ্যাকুয়েরি ইউআই ওয়েবসাইট



2

অন্য একটি সহজ এবং সম্পূর্ণ বিকল্প:

<input type="text" id="Email"/>
<div id="ClasSpan"></div>   
<input id="ValidMail" type="submit"  value="Valid"/>  


function IsEmail(email) {
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return regex.test(email);
}

$("#ValidMail").click(function () {
    $('span', '#ClasSpan').empty().remove();
    if (IsEmail($("#Email").val())) {
        //aqui mi sentencia        
    }
    else {
        $('#ClasSpan').append('<span>Please enter a valid email</span>');
        $('#Email').keypress(function () {
            $('span', '#itemspan').empty().remove();
        });
    }
});

3
স্ট্যাক ওভারফ্লো ইংরেজি এর একটি সাইট। দয়া করে অন্যান্য ভাষায় সামগ্রী পোস্ট করবেন না।
এন্ডার্স

2

আপনি নিজের ফাংশন তৈরি করতে পারেন

function emailValidate(email){
    var check = "" + email;
    if((check.search('@')>=0)&&(check.search(/\./)>=0))
        if(check.search('@')<check.split('@')[1].search(/\./)+check.search('@')) return true;
        else return false;
    else return false;
}

alert(emailValidate('your.email@yahoo.com'));

1

সরলিকৃত যা আমি সবে তৈরি করেছি, আমার যা প্রয়োজন তা করে। এটি কেবলমাত্র বর্ণমালা, সময়কাল, আন্ডারস্কোর এবং @ এ সীমাবদ্ধ রেখেছেন।

<input onKeyUp="testEmailChars(this);"><span id="a"></span>
function testEmailChars(el){
    var email = $(el).val();
    if ( /^[a-zA-Z0-9_@.-]+$/.test(email)==true ){
        $("#a").html("valid");
    } else {
        $("#a").html("not valid");
    }
}

অন্যের সহায়তায় তৈরি


1

এই regexp abc@abc.com.com.com.com এর মতো সদৃশ ডোমেন নামগুলিকে প্রতিরোধ করে, এটি কেবলমাত্র abc@abc.co.in এর মত ডোমেনটিকে দুইবার অনুমতি দেবে। এটি 123abc@abc.com এর মতো নম্বর থেকে স্ট্যাটারিংয়ের অনুমতি দেয় না

 regexp: /^([a-zA-Z])+([a-zA-Z0-9_.+-])+\@(([a-zA-Z])+\.+?(com|co|in|org|net|edu|info|gov|vekomy))\.?(com|co|in|org|net|edu|info|gov)?$/, 

শুভকামনা !!!!!


1

টাইপ করার সময় ইমেল বৈধ করুন, বোতাম স্থিতি পরিচালনা সহ।

$("#email").on("input", function(){
    var email = $("#email").val();
    var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    if (!filter.test(email)) {
      $(".invalid-email:empty").append("Invalid Email Address");
      $("#submit").attr("disabled", true);
    } else {
      $("#submit").attr("disabled", false);
      $(".invalid-email").empty();
    }
  });

1

যদি আপনি jquery বৈধতা ব্যবহার করে থাকেন

আমি এমন একটি পদ্ধতি তৈরি করেছি emailCustomFormatযা regexআমার কাস্টম ফর্ম্যাটের জন্য ব্যবহার করা হয়েছে আপনি আপনার প্রয়োজনীয়তা মেটাতে এটি পরিবর্তন করতে পারেন

jQuery.validator.addMethod("emailCustomFormat", function (value, element) {
        return this.optional(element) || /^([\w-\.]+@@([\w-]+\.)+[\w-]{2,4})?$/.test(value);
    }, abp.localization.localize("FormValidationMessageEmail"));// localized message based on current language

তাহলে আপনি এটি এটি ব্যবহার করতে পারেন

$("#myform").validate({
  rules: {
    field: {
      required: true,
      emailCustomFormat : true
    }
  }
});

এই regex গ্রহণ

abc@abc.abc, abc@abc.abcd কিন্তু এই না

abc@abc, abc@abc.a,abc@abc.abcde

আশা করি এটি আপনাকে সাহায্য করবে

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