javascript - tutorial - কিভাবে জাভাস্ক্রিপ্ট একটি ইমেইল ঠিকানা যাচাই করতে?



জাভাস্ক্রিপ্ট টিউটোরিয়াল pdf (20)

কিভাবে একটি ইমেইল ঠিকানা জাভাস্ক্রিপ্ট যাচাই করা যাবে?

https://src-bin.com


Answer #1

TLD এর অস্তিত্ব পরীক্ষা করে না এমন একটি সমাধান অসম্পূর্ণ।

এই প্রশ্নের প্রায় সব উত্তর ইমেল ঠিকানা যাচাই করতে Regex ব্যবহার করে সুপারিশ। আমি Regex একটি মৌলিক বৈধতা জন্য শুধুমাত্র ভাল মনে হয়। মনে হচ্ছে ইমেইল ঠিকানাগুলির যাচাইকরণ বৈধতা দুটি পৃথক সমস্যা:

1- ইমেল বিন্যাস যাচাইকরণ: ইমেলটি RFC 5322 এ ইমেলগুলির বিন্যাস এবং প্যাটার্নের সাথে সঙ্গতিপূর্ণ কিনা এবং TLD প্রকৃতপক্ষে বিদ্যমান থাকলে তা নিশ্চিত করা। সমস্ত বৈধ টিএলডি একটি তালিকা here পাওয়া here

উদাহরণস্বরূপ, ঠিকানাটি [email protected]রেজেক্সটি পাস করলেও, এটি বৈধ ইমেল নয়, কারণ cccআইএএনএ দ্বারা শীর্ষ স্তরের ডোমেন নয়।

2- নিশ্চিত ইমেল আসলে বিদ্যমান মেকিং: এই কাজ করার জন্য, একমাত্র বিকল্প হয় ব্যবহারকারী একটি ইমেল পাঠাতে


Answer #2

HTML5 নিজেই ইমেইল বৈধতা আছে। যদি আপনার ব্রাউজার HTML5 সমর্থন করে তবে আপনি নিম্নলিখিত কোড ব্যবহার করতে পারেন।

<form><input type="email" placeholder="[email protected]">
    <input type="submit">
</form>

jsFiddle লিঙ্ক

HTML5 স্পিক থেকে :

একটি বৈধ ই-মেইল ঠিকানা একটি স্ট্রিং যা নিম্নোক্ত ABNF এর email উত্পাদনের সাথে মেলে, যার জন্য অক্ষর সেটটি ইউনিকোড।

email   = 1*( atext / "." ) "@" label *( "." label )
label   = let-dig [ [ ldh-str ] let-dig ]  ; limited to a length of 63 characters by RFC 1034 section 3.5
atext   = < as defined in RFC 5322 section 3.2.3 >
let-dig = < as defined in RFC 1034 section 3.5 >
ldh-str = < as defined in RFC 1034 section 3.5 >

এই প্রয়োজনীয়তাটি RFC 5322 এর একটি ইচ্ছাকৃত লঙ্ঘন যা ই-মেইল ঠিকানাগুলির জন্য একটি সিনট্যাক্স সংজ্ঞায়িত করে যা একযোগে খুব কঠোর ("@" চরিত্রের আগে), খুব অস্পষ্ট ("@" চরিত্রের পরে) এবং খুব ল্যাক (মন্তব্যগুলি মঞ্জুরি দেয় , হোয়াইটস্পেস অক্ষর, এবং সর্বাধিক ব্যবহারকারীদের অপরিচিত অপরিহার্য স্ট্রিং উদ্ধৃত) এখানে ব্যবহারিক ব্যবহার হতে।

নিম্নোক্ত জাভাস্ক্রিপ্ট- এবং পার্ল-সামঞ্জস্যপূর্ণ নিয়মিত অভিব্যক্তিটি উপরের সংজ্ঞাটির বাস্তবায়ন।

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-][email protected][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])?)*$/

Answer #3

আধুনিক ব্রাউজারে আপনি বিশুদ্ধ জাভাস্ক্রিপ্ট এবং DOM এর মাধ্যমে @ সুশিলের উত্তরের উপরে তৈরি করতে পারেন:

function validateEmail(value) {
  var input = document.createElement('input');

  input.type = 'email';
  input.required = true;
  input.value = value;

  return typeof input.checkValidity === 'function' ? input.checkValidity() : /\[email protected]\S+\.\S+/.test(value);
}

আমি fiddle http://jsfiddle.net/boldewyn/2b6d5/ মধ্যে একটি উদাহরণ স্থাপন করেছি। Squirtle এর উত্তর থেকে বৈশিষ্ট্য সনাক্তকরণ এবং বেয়ার হাড়ের বৈধতার সাথে মিলিত, এটি নিয়মিত অভিব্যক্তি গণহত্যার মাধ্যমে আপনাকে মুক্ত করে এবং পুরানো ব্রাউজারগুলিতে বার্ক না করে।


Answer #4

আমি এটি সর্বোত্তম সমাধান হিসাবে খুঁজে পেয়েছি:

/^[^\[email protected]][email protected][^\[email protected]]+\.[^\[email protected]]+$/

এটি নিম্নলিখিত ফরম্যাটের অনুমতি দেয়:

1.  [email protected]
2.  [email protected]
3.  [email protected]
4.  [email protected]
9.  #!$%&'*+-/=?^_`{}|[email protected]
6.  "()[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org
7.  " "@example.org (space between the quotes)
8.  üñîçøðé@example.com (Unicode characters in local part)
9.  üñîçøðé@üñîçøðé.com (Unicode characters in domain part)
10. Pelé@example.com (Latin)
11. δοκιμή@παράδειγμα.δοκιμή (Greek)
12. 我買@屋企.香港 (Chinese)
13. 甲斐@黒川.日本 (Japanese)
14. чебурашка@ящик-с-апельсинами.рф (Cyrillic)

এটি স্পষ্টভাবে বহুমুখী এবং সমস্ত গুরুত্বপূর্ণ আন্তর্জাতিক অক্ষরকে অনুমোদন দেয়, যদিও এখনও মৌলিক [email protected] বিন্যাস প্রয়োগ করে। এটি RFC দ্বারা টেকনিক্যালি মঞ্জুরিপ্রাপ্ত স্পেসগুলি ব্লক করবে, কিন্তু এগুলি এতই বিরল যে আমি এটি করতে পেরে খুশি।


Answer #5

আমি সত্যিই এই সমস্যা সমাধানের জন্য উন্মুখ। তাই আমি উপরে ইমেল বৈধতা নিয়মিত অভিব্যক্তি সংশোধন করা হয়েছে

উইকিপিডিয়া ইমেল ঠিকানা উদাহরণ পাস।

এবং আপনি here ফলাফল দেখতে পারেন।


Answer #6

ইমেল যাচাই করার জন্য আপনি নিয়মিত অভিব্যক্তিটি ব্যবহার করার সিদ্ধান্ত নিতে দ্বিতীয়টি বুঝতে পেরেছেন: এটি সম্ভবত একটি ভাল ধারণা নয় । একবার আপনি এই শর্তে এসেছেন, সেখানে অনেকগুলি বাস্তবায়ন রয়েছে যা আপনাকে অর্ধেকে পেতে পারে, এই নিবন্ধটি তাদের সুন্দরভাবে তুলে ধরে।

সংক্ষেপে, যাইহোক, একেবারে একমাত্র উপায়, ইতিবাচকভাবে নিশ্চিত যে ব্যবহারকারী কী লিখেছেন তা আসলেই একটি ইমেল আসলে একটি ইমেল পাঠানো এবং কী ঘটবে তা দেখতে হয়। অন্য যে এটি সব ঠিক অনুমান।


Answer #7

এটি http://codesnippets.joyent.com/posts/show/1917 থেকে চুরি হয়েছে

email = $('email');
filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (filter.test(email.value)) {
  // Yay! valid
  return true;
}
else
  {return false;}

Answer #8

এটি একটি ইমেল কিনা তা পরীক্ষা করার জন্য আপনাকে একটি ইনপুট স্ট্রিং যাচাই করতে নিয়মিত এক্সপ্রেশনগুলি ব্যবহার করতে হবে না। এটা খুব জটিল এবং সব ক্ষেত্রে আবরণ হবে না।

এখন যেহেতু আপনি কেবলমাত্র 90% ক্ষেত্রেই কভার করতে পারেন, এমন কিছু লিখুন:

function isPossiblyValidEmail(txt) {
   return txt.length > 5 && txt.indexOf('@')>0;
}

আপনি এটা পরিমার্জন করতে পারেন। উদাহরণস্বরূপ, 'aaa @' বৈধ। কিন্তু সামগ্রিক আপনি gist পেতে। এবং বহন করা না ... একটি সহজ 90% সমাধান 100% সমাধান চেয়ে ভাল যে কাজ করে না।

বিশ্বের সহজ কোড প্রয়োজন ...


Answer #9

জাভাস্ক্রিপ্ট একটি নিয়মিত অভিব্যক্তি মেলে পারে:

emailAddress.match( / some_regex /);

এখানে ইমেলগুলির জন্য একটি RFC22 নিয়মিত অভিব্যক্তি রয়েছে:

^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*
"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x
7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<
!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])
[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$

Answer #10

প্রবেশ করানো ইমেল ঠিকানাটি বৈধ কিনা বা HTML ব্যবহার না করেই কেবল চেক করুন।

<input type="email"/>

বৈধতার জন্য একটি ফাংশন লিখতে কোন প্রয়োজন নেই।


Answer #11

শুধু সম্পূর্ণতার জন্য, এখানে আপনার আরএফসি 28২২ সম্মতিপূর্ণ রেজেক্স রয়েছে

সরকারী মান 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])+)\])

(...) আমরা দ্বি উদ্ধৃতি এবং বর্গাকার বন্ধনী ব্যবহার করে সিনট্যাক্সকে বাদ দিলে আমরা আরএফসি 28২২ এর আরও বাস্তব প্রয়োগ করতে পারি। এটি এখনও প্রকৃত ব্যবহারে সকল ইমেল ঠিকানাগুলির 99.99% মিলবে।

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

আপনি যে কোনও পরিবর্তন করতে পারেন যা কোনও দুই-অক্ষরের দেশ কোড শীর্ষ স্তরের ডোমেন এবং শুধুমাত্র নির্দিষ্ট জেনেরিক শীর্ষ স্তরের ডোমেইনগুলিকে অনুমতি দেয়। এই regex [email protected] মত ডামি ইমেল ঠিকানা ফিল্টারনতুন শীর্ষ স্তরের ডোমেন যুক্ত হওয়ার পরে আপনাকে এটি আপডেট করতে হবে

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

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

গুরুত্ব খনি


Answer #12

সমস্ত ইমেল ঠিকানা একটি 'এ' (অর্থাত্ @) প্রতীক থাকে। প্রয়োজনীয় শর্ত পরীক্ষা করুন:

email.indexOf("@") > 0

কিছু জটিল সঙ্গে বিরক্ত করবেন না। এমনকি যদি আপনি কোনও ইমেলটি RFC- সিনট্যাক্টিক্যাল বৈধ কিনা তা নির্ধারণ করতে পারলেও এটি সরবরাহকারী ব্যক্তির সাথে সম্পর্কিত কিনা তা আপনাকে জানাবে না। যে সত্যিই কি ব্যাপার।

যে পরীক্ষা, একটি বৈধতা বার্তা পাঠান।


Answer #13

উইকিপিডিয়া স্ট্যান্ডার্ড মেইল ​​সিনট্যাক্স:

https://en.wikipedia.org/wiki/Email_address#Examples https://fr.wikipedia.org/wiki/Adresse_%C3%A9lectronique#Syntaxe_exacte

function validMail(mail)
{
    return /^(([^<>()\[\]\.,;:\[email protected]\"]+(\.[^<>()\[\]\.,;:\[email protected]\"]+)*)|(\".+\"))@(([^<>()\.,;\[email protected]\"]+\.{0,1})+([^<>()\.,;:\[email protected]\"]{2,}|[\d\.]+))$/.test(mail);
}

// VALID MAILS

validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('[email protected]') // Return true
validMail('user+mailbox/[email protected]') // Return true
validMail('"very.(),:;<>[]\".VERY.\"[email protected]\\ \"very\".unusual"@strange.example.com') // Return true
validMail('!#$%&\'*+-/=?^_`.{|}[email protected]') // Return true
validMail('"()<>[]:,;@\\\"!#$%&\'-/=?^_`{}| ~.a"@example.org') // Return true
validMail('"[email protected]"@example.com') // Return true
validMail('"Fred Bloggs"@example.com') // Return true
validMail('"Joe.\\Blow"@example.com') // Return true
validMail('Loïc.Accentué@voilà.fr') // Return true
validMail('" "@example.org') // Return true
validMail('[email protected][IPv6:2001:DB8::1]') // Return true

// INVALID MAILS

validMail('Abc.example.com') // Return false
validMail('[email protected]@[email protected]') // Return false
validMail('a"b(c)d,e:f;g<h>i[j\k][email protected]') // Return false
validMail('just"not"[email protected]') // Return false
validMail('this is"not\[email protected]') // Return false
validMail('this\ still\"not\\[email protected]mple.com') // Return false
validMail('[email protected]') // Return false
validMail('[email protected]') // Return false

এই পরীক্ষাটি দেখান: https://regex101.com/r/LHJ9gU/1


Answer #14

RFC5322 এর সাথে নিশ্চিত যা কখনও সেরা regex

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


Answer #15

দৃশ্যত, এটা যে:

/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~][email protected]((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i

http://fightingforalostcause.net/misc/2006/compare-email-regex.php থেকে নেওয়া হয়েছে অক্টোবর 1 '10।

কিন্তু, অবশ্যই, যে আন্তর্জাতিকীকরণ উপেক্ষা করা হয়।


Answer #16

নিয়মিত এক্সপ্রেশন আমার জ্ঞান যে ভাল না। এজন্য আমি একটি সাধারণ নিয়মিত অভিব্যক্তি সহ সাধারণ সিনট্যাক্সটি পরীক্ষা করে দেখি এবং পরে অন্যান্য ফাংশনগুলির সাথে আরও নির্দিষ্ট বিকল্পগুলি পরীক্ষা করে দেখি। এটি সর্বোত্তম প্রযুক্তিগত সমাধান নাও হতে পারে, তবে এই ভাবে আমি আরও বেশি নমনীয় এবং দ্রুততর।

সর্বাধিক সাধারণ ত্রুটিগুলি আমি পূরণ করেছি স্পেসগুলি (বিশেষ করে শুরুতে এবং শেষের দিকে) এবং মাঝে মাঝে একটি ডাবল ডট।

function check_email(val){
    if(!val.match(/\[email protected]\S+\.\S+/)){ // Jaymon's / Squirtle's solution
        // Do something
        return false;
    }
    if( val.indexOf(' ')!=-1 || val.indexOf('..')!=-1){
        // Do something
        return false;
    }
    return true;
}

check_email('[email protected]'); // Returns false
check_email('[email protected]'); // Returns false
check_email(' [email protected]'); // Returns false
check_email('[email protected]'); // Returns true

Answer #17

স্ক্রার্টের বিপরীতে , এখানে একটি জটিল সমাধান রয়েছে, তবে এটি সঠিকভাবে ইমেল যাচাই করার একটি দুর্দান্ত কাজ করে:

function isEmail(email) { 
    return /^((([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.test(email);
} 

তাই ব্যবহার করুন:

if (isEmail('[email protected]')){ console.log('This is email is valid'); }

Answer #18

Regex 2018 আপডেট! এটা চেষ্টা কর

let val = '[email protected]';
if(/^[a-z0-9][a-z0-9-_\.][email protected]([a-z]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\.[a-z0-9]{2,10}(?:\.[a-z]{2,10})?$/.test(val)) {
   console.log('passed');
}

টাইপস্ক্রিপ্ট সংস্করণ সম্পূর্ণ

//
export const emailValid = (val:string):boolean => /^[a-z0-9][a-z0-9-_\.][email protected]([a-z]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\.[a-z0-9]{2,10}(?:\.[a-z]{2,10})?$/.test(val);

আরো তথ্য https://git.io/vhEfc


Answer #19

এখানে ইমেল ঠিকানা যাচাই করতে নিয়মিত এক্সপ্রেশন ব্যবহার সম্পর্কে একটি খুব ভাল আলোচনা হয়; " http://fightingforalostcause.net/misc/2006/compare-email-regex.php "

এখানে রেফারেন্স উদ্দেশ্যে বর্তমান শীর্ষ অভিব্যক্তি, জাভাস্ক্রিপ্ট সামঞ্জস্যপূর্ণ:

/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i

Answer #20

নিয়মিত মধ্যে মাইক্রোসফট কর্তৃক প্রদত্ত মত প্রকাশের ASP.NET MVC হয়

/^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/

এটি ত্রুটিযুক্ত অবস্থায় আমি এখানে পোস্ট করি - যদিও এটি আমার চাহিদাগুলির জন্য সর্বদা নিখুঁত ছিল।






email-validation