কীভাবে জাভাস্ক্রিপ্টে কোনও ইমেল ঠিকানা যাচাই করা যায়


4369

জাভাস্ক্রিপ্টে কোনও ইমেল ঠিকানা যাচাই করার জন্য নিয়মিত প্রকাশ রয়েছে?



60
দয়া করে এই অধিকারটি পান, অনেকগুলি ওয়েবসাইটই আমার "ফার্স্টনাম@সেকেন্ডনাম.নাম" এর ইমেল ঠিকানা পছন্দ করে না, সমস্ত শীর্ষ স্তরের ডোমেনগুলি এটি 2 বা 3 অক্ষর সমাপ্ত করে না।
আয়ান রিংরোজ

41
ই-মেলগুলির জন্য রেগেক্স চেকগুলি ব্যবহারের জন্য কোনও সমর্থন আমার বিপরীতে 100%। আমার "foo+bar@gmail.com" এর ইমেল ঠিকানাটি অবৈধ বলে অবহেলিত হয়ে ক্লান্ত হয়ে পড়েছি। সর্বোত্তম বিকল্পটি হ'ল ব্যবহারকারীকে দুবার তাদের ই-মেইল টাইপ করতে বলুন এবং আপনি যদি একটি রেজেক্স চেকার ব্যবহার করেন তবে ব্যবহারকারীকে তাদের ইমেল ঠিকানাটি বৈধ বলে মনে হয় না এবং তারা এটি টাইপ করেছেন কিনা তা নিশ্চিত কিনা তা জিজ্ঞাসা করুন ঠিক আছে। এমনকি রেগএক্সপ্যাক চেক আউট যা যা চেক আউট করেছে তা চিহ্নিত করার জন্য এতদূর যান, তবে তাদের ফর্ম জমা দেওয়া থেকে বিরত করবেন না।
Soundfx4

17
@ সাউন্ডফএক্স ৪: এটি উত্তর হওয়া উচিত এবং এটি হিসাবে স্বীকৃত। ঠিকানার নির্ভুলতার জন্য পরীক্ষা করা বোবা জিনিস - গ্রাহকদের হতাশ করার সর্বোত্তম উপায়। (অনুপস্থিত আমি অনুরোধের দুইবার টাইপ করা এবং ইঙ্গিতটি করা কিছু সম্ভাব্য সমস্যা আছে @, ;comইত্যাদি) এবং ব্যবহারকারী সংশোধন তাদের দিন যদি তারা ইচ্ছুক (এবং যাই হোক না কেন তারা আমাকে পাঠাতে গ্রহণ)
WoJ

4
আমি ওউজে দেওয়া উত্তরের সাথে পুরোপুরি একমত। একটি সাধারণ নিয়মিত প্রকাশের সাথে বৈধ ইমেল ঠিকানার ফর্ম্যাটটি চূড়ান্তভাবে জটিল। ঠিকানাটি বৈধ কিনা তা নিশ্চিত হওয়ার একমাত্র উপায় হ'ল এটি চেষ্টা করে।
নিকোল

উত্তর:


4938

নিয়মিত এক্সপ্রেশন ব্যবহার করা সম্ভবত সেরা উপায়। আপনি এখানে একগুচ্ছ পরীক্ষা দেখতে পারেন ( ক্রোমিয়াম থেকে নেওয়া )

function validateEmail(email) {
    const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(String(email).toLowerCase());
}

এখানে নিয়মিত এক্সপ্রেসনের উদাহরণ যা ইউনিকোডকে গ্রহণ করে:

const re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;

তবে মনে রাখবেন যে কেবলমাত্র জাভাস্ক্রিপ্টের বৈধতার উপর নির্ভর করা উচিত নয়। জাভাস্ক্রিপ্ট সহজেই অক্ষম করা যায়। এটি সার্ভারের পাশ দিয়েও বৈধ হওয়া উচিত।

এখানে কর্মের উপরোক্ত উদাহরণ রয়েছে:

function validateEmail(email) {
  const re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return re.test(email);
}

function validate() {
  const $result = $("#result");
  const email = $("#email").val();
  $result.text("");

  if (validateEmail(email)) {
    $result.text(email + " is valid :)");
    $result.css("color", "green");
  } else {
    $result.text(email + " is not valid :(");
    $result.css("color", "red");
  }
  return false;
}

$("#validate").on("click", validate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <p>Enter an email address:</p>
  <input id='email'>
  <button type='submit' id='validate'>Validate!</button>
</form>

<h2 id='result'></h2>


574
এই রেজেক্সটি বৈধ, ব্যবহারের ইমেলগুলি সরিয়ে দেয়। ব্যবহার করবেন না. একটি সঠিক রেইজেক্স পেতে গুগল "আরএফসি 822" বা "আরএফসি 2822"
রেন্ডাল শোয়ার্জ

41
এটি আরএফসি 822-র উদাহরণগুলিও গ্রহণ করে না Some কিছু সাধারণ ক্ষেত্রে এটি \ @ b @ c.com, a(b)@c.com এর সাথে মেলে না। আরও জন্য আরএফসি দেখুন। এখানে একটি রেইজেক্স রয়েছে যা কোনও বৈধ ঠিকানাগুলি [^ @] + @ [^ @] + \ অস্বীকার করবে না [[^ @] + এবং সাধারণ ত্রুটি থেকে রক্ষা করে।
ভ্রুও

125
@ গুডপারসন আমি কেবলমাত্র তাকে @ ইমেলকে ইমেল করার চেষ্টা করেছি যাতে তারা জানাতে পারে যে তাদের কাছে শীতল ইমেল ঠিকানা রয়েছে। কিন্তু হায়, জিমেইল আমাকে যেতে দেয় না। আমার সন্দেহ হয় যে যারাই কেবল আমার সাইটের জাভাস্ক্রিপ্ট বৈধতা অপেক্ষা ইমেলের মাধ্যমে অন্যের সাথে যোগাযোগের ক্ষেত্রে আরও বড় সমস্যা হয়! তবে চ্যালেঞ্জটি বাড়ানোর জন্য ধন্যবাদ।
বেন রবার্টস

26
এটি এমন একটি সমাধান যা বেশিরভাগ স্থানীয় ইংরেজী স্পিকারের কাছে ভাল বলে মনে হয় তবে এটি তুরস্কের পরীক্ষায় ব্যর্থ হয় (দেখুন জোয়েল স্পলস্কি)। বেশিরভাগ ইউনিকোড অক্ষর অনুমোদিত, এবং উদাহরণস্বরূপ আর্জেন্টিনায়, "ñóoñó1234@server.com" এর মতো ঠিকানাগুলি সম্পূর্ণ স্বাভাবিক। joelonsoftware.com/articles/Unicode.html
oligofren থেকে

139
আপনি ইমেল ঠিকানা, সময়কাল যাচাই করতে পারবেন না। ইমেল ঠিকানাটি যাচাই করতে পারে তার একমাত্র ইমেল ঠিকানা সরবরাহকারী। উদাহরণস্বরূপ, এই উত্তরটি এই ইমেল ঠিকানাগুলি বলে: %2@gmail.com, "%2"@gmail.com, "a..b"@gmail.com, "a_b"@gmail.com, _@gmail.com, 1@gmail.com , 1_example@something.gmail.comসবগুলি বৈধ, তবে Gmail কখনই এই ইমেল ঠিকানাগুলির কোনওটিকেই অনুমতি দেবে না। আপনার ইমেল ঠিকানাটি গ্রহণ করে এবং সেই ইমেল ঠিকানায় একটি ইমেল বার্তা প্রেরণ করে, কোনও কোড / লিঙ্ক সহ ব্যবহারকারীকে অবশ্যই বৈধতা নিশ্চিত করতে দেখতে যেতে হবে।
কেভিন ফেগান

828

যারা আকারে সত্যিকারের সাধারণ বৈধতা চান তাদের জন্য আমি জ্যামনের উত্তরকে কিছুটা পরিবর্তন করেছি :

anystring@anystring.anystring

নিয়মিত প্রকাশ:

/\S+@\S+\.\S+/

জাভাস্ক্রিপ্ট ফাংশন উদাহরণ:

function validateEmail(email) 
    {
        var re = /\S+@\S+\.\S+/;
        return re.test(email);
    }
    
console.log(validateEmail('anystring@anystring.anystring'));


68
আপনি 20x এমন কিছু বাস্তবায়ন করতে পারেন যা কয়েক ব্যবহারকারীর জন্য সমস্যা সৃষ্টি করতে পারে এবং ভবিষ্যতে বৈধ নাও হতে পারে, অথবা আপনি এটিকে বাস্তব দেখানোর জন্য কমপক্ষে প্রচেষ্টা চালিয়েছেন তা নিশ্চিত করার জন্য আপনি ইমর্টাল ফায়ারফ্লাইয়ের সংস্করণটি ধরে নিতে পারেন। আপনার প্রয়োগের উপর নির্ভর করে এটি সম্ভবত পাগল হয়ে যাওয়ার সম্ভাবনা বেশি হতে পারে কারণ আপনি তাদের অপ্রচলিত ইমেলটি গ্রহণ করেন না, বরং এমন ব্যক্তিদের চেয়ে যারা সত্যই অস্তিত্ব নেই এমন ইমেল ঠিকানাগুলি প্রবেশ করে সমস্যা সৃষ্টি করে (যা তারা প্রবেশ করে যেভাবেই করতে পারে) একটি 100% বৈধ আরএফসি 2822 ইমেল ঠিকানা তবে একটি নিবন্ধভুক্ত ব্যবহারকারী নাম বা ডোমেন ব্যবহার করে)। সম্মত!
ব্যবহারকারী 83358

82
@ আইমর্টাল ফায়ারফ্লাই, আপনার সরবরাহিত রেজেক্সটি আসলে মিলবে name@again@example.com। আপনার লাইনটি জাভাস্ক্রিপ্ট কনসোলে আটকানোর চেষ্টা করুন। আমি বিশ্বাস করি যে আপনার উদ্দেশ্যটি কেবলমাত্র পুরো পাঠ্যের সাথেই মিলবে, যার জন্য '^' পাঠ্যের শুরু এবং পাঠকের '$' অপারেটর প্রয়োজন হবে। আমি ব্যবহার করছি হয়/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test('name@again@example.com')
OregonTrail

8
এই বৈধতার ভিত্তিতে এই ইমেলটি বৈধ: @ this..com দেখুন
এহসান

4
হুঁ। উইকিপিডিয়া বলে যে "very.unusual.@.unusual.com"@example.comএটি একটি বৈধ ইমেল ঠিকানা। /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test('"very.unusual.@.unusual.com"@example.com') // false। উফ।
বেকন বিটস

3
এটিও কি অনুমতি দেয় না @@@.@? : ডি
hfossli

761

কেবলমাত্র সম্পূর্ণতার জন্য, এখানে আপনার আর একটি আরএফসি 2822 অনুবর্তী রেগেক্স রয়েছে

অফিসিয়াল স্ট্যান্ডার্ডটি আরএফসি 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])+)\])

(...) আমরা ডাবল উদ্ধৃতি এবং বর্গাকার বন্ধনী ব্যবহার করে সিনট্যাক্স বাদ দিলে আমরা আরএফসি 2822 এর আরও ব্যবহারিক বাস্তবায়ন পাই। এটি আজও বাস্তব ব্যবহারের সমস্ত ইমেল ঠিকানার 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])?

আপনি যে আরও পরিবর্তন করতে পারেন তা হ'ল যে কোনও দ্বি-বর্ণের দেশ কোড শীর্ষ স্তরের ডোমেন এবং কেবল নির্দিষ্ট জেনেরিক শীর্ষ স্তরের ডোমেনকে মঞ্জুরি দেওয়া। এই রেজেক্সটি ডামি ইমেল ঠিকানাগুলি ফিল্টার করেasdf@adsf.adsf । আপনি তা আপডেট করতে নতুন টপ লেভেল ডোমেইন যোগ করা হয় প্রয়োজন হবে

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

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

জোর আমার


84
বিশেষ দ্রষ্টব্য: "প্রকৃত ব্যবহারের ক্ষেত্রে আজ " বৈধ হতে পারে হয়েছে যখন কোড, লেখা হয়েছিল ফিরে 200x হবে। কোড হবে সম্ভবত নির্দিষ্ট বছর পরেও ব্যবহারে থাকবে। (যদি আমি প্রতি জন্য একটি তুচ্ছ ছিল আমি ফিক্স ছিল "সাধরণ, কোন এক কখনও একটি 4 + + -letter টিএলডি ঐ নির্দিষ্ট বেশী ছাড়া ব্যবহার করবে", আমি বিশ্বের তামা ও নিকেল বাজার কোণ পারে;))
Piskvor বিল্ডিং বাম

7
আরএফসি 2822 এর ব্যবহারিক প্রয়োগের জন্য, একক চর ডোমেন এক্সটেনশনগুলি রোধ করতে শেষটি কিছুটা সংশোধন করা উচিত। / [a-z0-9! # $% & '* + \ / =? ^ _ {|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_{|} ~ -] +) * @ ((?: [a-z0-9] (?: [a-z0-9 -] * [a-z0-9])? \।) + [a-z0-9] [a-z0-9 -] * [a-z0-9] /
ফারেল

5
এছাড়াও, প্রথম অংশটি (?: [যখন কোনও ব্যবহারকারী তাদের ইমেল ঠিকানা মূলধন করে তখন মিথ্যা নেতিবাচকতা এড়াতে মূলধন এ এর ​​সাথে হওয়া উচিত
ডন রোলিং

9
@ ডনরোলিং এটি করবেন না যে ", A থেকে Z A টু Z" শুধু মানে এই নয়, এটি মানে হলো "[\] ^: _` "যারা কারণ মাঝে " z "এবং" একটি "। \wকোনও কিছু করার আগে ইমেল ঠিকানাটি ছোট বা কম ব্যবহার করুন , কারণ এটি কনভেনশন।
কির্ব্ব

5
"নতুন শীর্ষ-স্তরের ডোমেন যুক্ত হওয়ার সাথে সাথে আপনাকে এটি আপডেট করতে হবে।" ঠিক আছে, এখন এর জন্য অনেক বেশি - সেখানে 1500 টির বেশি স্বীকৃত টিএলডি রয়েছে।
নাথান ওসমান

377

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

^\S+@\S+$

এটি সাধারণত সর্বাধিক সুস্পষ্ট ত্রুটিগুলি সনাক্ত করে যা ব্যবহারকারীরা তৈরি করে এবং আশ্বাস দেয় যে ফর্মটি বেশিরভাগই সঠিক, যা জাভাস্ক্রিপ্টের বৈধতা যাচাইয়ের বিষয়ে।


70
ইমেল প্রেরণ এবং যা ঘটে তা দেখার জন্য +1 হ'ল ইমেল ঠিকানাটি যাচাই করার একমাত্র আসল নিশ্চিত উপায়, একটি সরল রেজেক্স ম্যাচ ছাড়া আর কিছু করার দরকার নেই।
কম্ম্রাদহোমার

20
আপনি এখনও এটি সহজ রাখতে পারেন তবে এটিতে একটি "রয়েছে তা নিশ্চিত করতে আরও কিছু করতে পারেন" " @ এর পরে কোথাও কেবল সংখ্যা বা অঙ্কগুলি অনুসরণ করা যায়, সুতরাং আমার মতো @ এখানে, আমাকে @ এখানে @, এবং আমার @ এখানেকম বৈধ নয় ... ^ \ এস + @ \ এস + [\।] [0-9a-z ] + $
টিম ফ্র্যাঙ্কলিন

14
আমি মনে করি ই-মেইল ঠিকানার মধ্যে স্পেস থাকতে পারে। সম্ভবত এটি ব্যবহার করা আরও ভাল.+@.+
স্যাম

11
/\S+@\S+/.test("áéíóúý@ÁÉÍÓÚÝð") true
gtourie

110
@gtourie কেহ কেয়ার করে না। দুর্ঘটনাক্রমে কেউ এটি ইমেল ক্ষেত্রে প্রবেশ করতে যাচ্ছে না , এবং এটি সমস্ত ফ্রন্ট-এন্ড বৈধতা হ'ল: কোনও ইমেল ক্ষেত্রে লোকজনকে ভুলক্রমে ভুল তথ্য, যেমন তাদের নাম যেমন প্রবেশ করতে বাধা দেয়।
মেগার

330

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

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


112
-1 কেন আমি এমন একটি ইমেল ঠিকানা যাচাই করেছিলাম যা এমনকি রেজেক্স নিয়ন্ত্রণও পাস করে না যাচাই করে আমার সময় ব্যয় করতে চাই?
kommradHomer

63
@ কোমরাদহোমর - একটি "রেইজেক্স অবৈধ" ঠিকানা প্রায় সর্বদা বৈধ, কারণ আপনি কোনও ইমেল ঠিকানা যাচাই করতে যা ব্যবহার করেন তা অবশ্যই ভুল এবং বৈধ ইমেল ঠিকানাগুলি বাদ দেবে। একটি ইমেল ঠিকানা হয় name_part@domain_partএবং ব্যবহারিকভাবে একটি সহ কিছু, @নাম_পার্টে বৈধ; ঠিকানাটি foo@bar@machine.subdomain.example.museumবৈধ, যদিও এটি অবশ্যই পালাতে হবে foo\@bar@machine....। ইমেলটি ডোমেনে পৌঁছে গেলে যেমন 'উদাহরণ.com' যে ডোমেনটি "স্থানীয়ভাবে" মেলটি রুট করতে পারে তাই "অদ্ভুত" ব্যবহারকারীর নাম এবং হোস্টনামের উপস্থিতি থাকতে পারে।
স্টিফেন পি

6
স্ট্যাকওভারফ্লো.com/ a/1373724/69697ভায়জারের উত্তরের দ্বিতীয় রেজেক্স ব্যবহারের জন্য ব্যবহারিক এবং এটিতে প্রায় কোনও মিথ্যা নেতিবাচক হওয়া উচিত না। আমি এখানে @কমারডহোমারের সাথে একমত - আপনার যদি না হয় তবে ইমেল কেন পাঠাবেন? আমি বোধগম্য রেগেক্সেসের জন্য রিফ্লেক্সিভ অপছন্দ এবং কোড সহজ রাখার ইচ্ছাকে বুঝতে পারি, তবে এটি কোডের কয়েকটি লাইন যা আপনার সার্ভারকে অবিলম্বে অবৈধ আইটেমগুলি ছাঁটাই করে তাত্ক্ষণিকভাবে অনেকগুলি সঞ্চয় করতে পারে। নিজস্বভাবে একটি রেজেক্স সাহায্যহীন, তবে সার্ভারসাইড বৈধতার জন্য পরিপূরক হিসাবে কাজ করে।
বেন রেজেনস্পান

6
@dmur আমি "প্রায় সর্বদা বৈধ" বোধ করি সম্ভবত এটি অত্যধিক বৃদ্ধি পাচ্ছে তবে ওয়েবসাইটগুলি দ্বারা আমার (পুরোপুরি বৈধ এবং কার্যকরী) ইমেল ঠিকানাগুলি প্রায়শই প্রত্যাখ্যান করা হয়েছিল, কেবলমাত্র আমার একটি .usডোমেন আছে বা আমি +বামে ব্যবহার করেছি বলে @- অনেক জায়গায় এই গুরুতর ত্রুটি সংশোধন করেছেন, কিন্তু স্থানীয় অংশ (@ বাম) হতে পারে কিছু ডোমেইন মালিক চায়। -> "foo@bar.com"@example.com <- একটি বৈধ ইমেল ঠিকানা।
স্টিফেন পি

8
@ kommradHomer "একটি রেজেক্স-অবৈধ ঠিকানা% 100 একটি অবৈধ ঠিকানা" " আমি দুঃখিত ... ক্ষমা করবেন? আপনি কি জানেন যে আমাকে কতবার বলা হয়েছে যে foo+bar@gmail.com কোনও বৈধ ইমেল নয় যখন বাস্তবে এটি আইডিটি নিখুঁত হয় ?! আপনার যুক্তি অত্যন্ত ত্রুটিযুক্ত। আমি ইমেলের সাথে ফর্মগুলি জমা দিয়েছি: এইআইসফাকিমেলবুতিটওয়িলপ্যাসিওরস্টুপিড্রেজেক্সচেক@regexchecksareretarded.com এবং অনুমান কি? এটি রেগেক্স চেকটি পাস করে ... তবে এটি কোনও বৈধ ইমেল নয় (যদিও প্রযুক্তিগতভাবে এটি রয়েছে, তবে আমি আপনাকে প্রতিশ্রুতি দিচ্ছি যে এটি বিদ্যমান নেই ... তবে তার চিবুকটি স্ক্র্যাচ করে )। যেমনটি অনেকে বলেছেন, এটি একটি বাজে
আইডিএ

211

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

<form><input type="email" placeholder="me@example.com" required>
    <input type="submit">
</form>

jsFizz লিঙ্ক

থেকে HTML5 এর বৈশিষ্ট :

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

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 >

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

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

/^[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])?)*$/

29
এটি ভাল, তবে এর সাথে সমস্যাটি হ'ল এটি অবশ্যই কোনও formট্যাগের মধ্যে থাকা এবং একটি submitইনপুট দ্বারা জমা দেওয়া উচিত , যা প্রত্যেকেরই করার বিলাসিতা নেই। এছাড়াও, আপনি ত্রুটি বার্তাটি সত্যই স্টাইল করতে পারবেন না।
জেসন

3
আমি নীচে একটি উত্তর যুক্ত করেছি যা আপনাকে ফর্ম থেকে মুক্ত করে জমা দেয়। তবে হ্যাঁ, ব্রাউজারগুলি সাধারণত কিছু প্লাসিবিলিটি চেক প্রয়োগ করে এবং একটি সম্পূর্ণ আরএফসি 822 বৈধতা নয়।
বোল্ডউইন

8
@ br1: কোনও "শীর্ষ" ডোমেইনের অস্তিত্ব নেই বলেই এটি অবৈধ। আপনার ইন্ট্রানেটটি কি আইপি এর সমাধান করেছে?
উড়ন্ত ভেড়া

7
এইচটিএমএল 5 ইমেল ক্ষেত্রের প্রকারটি ব্যবহারকারী @ ইমেলের মতো ইমেলগুলি গ্রহণ করে
পুস

1
দ্রষ্টব্য @ পুসের মন্তব্য: এইচটিএমএল 5 ইমেল ইনপুট গ্রহণ করে user@email, উদাহরণস্বরূপ, পিএইচপি'র filter_varতা গ্রহণ করে না। এটি সমস্যার কারণ হতে পারে।
টেক্সলেট

136

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

/^[^\s@]+@[^\s@]+\.[^\s@]+$/

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

1. prettyandsimple@example.com
2. very.common@example.com
৩. ডিসপোজেবল.স্টাইল.ইমেল.উইথ + সায়সবোল@example.com
4. other.email-with-dash@example.com
9. #!$%&'*+-/=?^_`{}ype~@example.org
6. "() []:,; @ \\\"! # $% & '* + - / =? ^ _ `{} | ~ .A "@ example.org
". "" @ example.org (উদ্ধৃতিগুলির মধ্যে স্থান)
৮. ex@example.com (স্থানীয় অংশে ইউনিকোডের অক্ষর)
9. üñîçøðé@üñîçøðé.com (ডোমেন অংশে ইউনিকোড অক্ষর)
10. Pelé@example.com (লাতিন)
১১. δοκιμή@παράδειγμα.δοκιμή (গ্রীক)
12. 我 買 @ 屋企। 香港 (চীনা)
13. 甲 斐 @ 黒 川। 日本 (জাপানি)
14. чебурашка@ящик-с-апельсинами.рф (সিরিলিক)

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


9
আমি ঠিক তাই করছি। এই সমস্ত "জটিল" উত্তরগুলি সমস্যা তৈরি করে: তারা হয় পেনি-কোড আইডিএনকে অনুমতি দেয় না বা টিএলডি একটি নির্দিষ্ট সেট ব্যবহার করে না বা অযৌক্তিকভাবে তাদের ইমেল প্রিফিক্সে @ @ çµ.ö এর মতো অক্ষর ব্যবহার করতে বাধা দেয় না (@ এর আগে) বা ডোমেন নাম। সুরক্ষার কারণে জাভাস্ক্রিপ্ট (কারণের ব্যাকএন্ড ব্যবহারের জন্য নয়) যথাযথ নয়। সুতরাং কেন কেবল ব্যবহারকারীকে বেসিক টাইপগুলি রোধ করতে সহায়তা করা হবে না। বেসিক টাইপগুলি হ'ল টিএলডি বা ব্যবহারকারী-উপসর্গ (@ এর আগে) বা ডোমেন-অংশ বা ভুল টাইপ (বা বিপরীতে) @হিসাবে ভুলে যান .। কারণ হিসাবে আমাদের সার্ভার-সাইডে আরও নিয়ন্ত্রক হতে হবে।
হাফেনক্রিনিখ

কিছু অদ্ভুত কারণে username@domain.comএই প্যাটার্নটির সাথে কাজ করে না
আইনস্টাইন

2
আপনার রেজেক্স অনুসারে "_.............. kamal@gmail.com" বৈধ, যা হওয়া উচিত নয়!
কমল নয়ন

1
উদাহরণস্বরূপ নিবন্ধিত রেজিএক্স, আপনি যদি এই সমাধানটির সাথে টিঙ্কার করতে চান তবে: regex101.com/r/AzzGQU/2
রায়ানম

7
এই রেজেক্স সঠিক। যদি কেউ তাদের ইমেলের মতো প্রবেশ করে a@b@c@d.x.y.@.zতবে তারা কি খারাপ সময় কাটানোর যোগ্য? : ডি
করিসিম্মন্স

94

আধুনিক ব্রাউজারে তোমাদের @ বিশুদ্ধ জাভাস্ক্রিপ্ট এবং সুশীল এর উত্তর উপরে নির্মাণ করতে পারেন করে 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() : /\S+@\S+\.\S+/.test(value);
}

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


4
সমস্যাটি নিয়ে মাথা ঘামানোর জন্য এটি একটি চতুর ধারণা তবে এটি কার্যকর হয় না কারণ ব্রাউজারগুলিতেও কৃপণ বৈধতা রয়েছে। যেমন ক্রোম, ফায়ারফক্স এবং সাফারির বর্তমান সংস্করণগুলির .@aমতো বৈধতা দেয় true
হ্যাঙ্ক

13
@ হেনরিজ্যাকসন দুর্ভাগ্যক্রমে, এই ক্ষেত্রে হ্যাঁ। এটি কারণ একটি আরএফসি অনুসারে যা একটি বৈধ ই-মেইল ঠিকানা (অন্তর্ভুক্ত চিন্তাভাবনা)। ব্রাউজারগুলি গ্রিল হয়ে যাবে, যদি তারা খুব সংকীর্ণকে বৈধতা দেয় এবং মিথ্যা নেতিবাচক উত্পাদন করে।
বোল্ডউইন

3
বৈশিষ্ট্য সনাক্তকরণ এবং করুণাময় অবক্ষয় অন্তর্ভুক্ত করার জন্য আপডেট হয়েছে, এখন এটি নতুন ব্রাউজারগুলিতে ভাঙবে না তবে আপনার পছন্দ মতো কোনও রেজিেক্স ব্যবহার করে।
রনি

সুন্দর সমাধান। দুঃখজনকভাবে এটি কেবল HTML5 + এর জন্য।
এডওয়ার্ড ওলামিসান

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

69

এটি সঠিক আরএফসি 822 সংস্করণ।

function checkEmail(emailAddress) {
  var sQtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
  var sDtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
  var sAtom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
  var sQuotedPair = '\\x5c[\\x00-\\x7f]';
  var sDomainLiteral = '\\x5b(' + sDtext + '|' + sQuotedPair + ')*\\x5d';
  var sQuotedString = '\\x22(' + sQtext + '|' + sQuotedPair + ')*\\x22';
  var sDomain_ref = sAtom;
  var sSubDomain = '(' + sDomain_ref + '|' + sDomainLiteral + ')';
  var sWord = '(' + sAtom + '|' + sQuotedString + ')';
  var sDomain = sSubDomain + '(\\x2e' + sSubDomain + ')*';
  var sLocalPart = sWord + '(\\x2e' + sWord + ')*';
  var sAddrSpec = sLocalPart + '\\x40' + sDomain; // complete RFC822 email address spec
  var sValidEmail = '^' + sAddrSpec + '$'; // as whole string

  var reValidEmail = new RegExp(sValidEmail);

  return reValidEmail.test(emailAddress);
}

আইডিএন ঠিকানাগুলি যাচাই করা হয় না (info@üpöü.com)
ডিএএইচ

66

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

emailAddress.match( / some_regex /);

ইমেলগুলির জন্য এখানে একটি আরএফসি 22 নিয়মিত প্রকাশ রয়েছে:

^((?>[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)>)$

1
@ কাতো: এটি (?>ব্যাকট্র্যাকিং বন্ধ করা এবং (?<angle><)…(?(angle)>)দীর্ঘায়িত প্রদান এড়ানোর জন্য কিছু বেমানান এক্সটেনশান ব্যবহার করে |
রাই-

60

সমস্ত ইমেল ঠিকানাগুলিতে একটি 'at' (ie @) চিহ্ন থাকে symbol প্রয়োজনীয় শর্ত পরীক্ষা করুন:

email.indexOf("@") > 0

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

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


3
যদি একাধিক '@' চিহ্ন থাকবে? অন্যান্য সীমাবদ্ধ প্রতীক? এই বৈধতা বিশ্বাস করা যায় না ...
ডায়েমপ্যান্টস

56

আরএফসিগুলির সাথে সম্মতিতে ইমেল ঠিকানার সঠিক বৈধতা এমন কোনও জিনিস নয় যা ওয়ান-লাইনার নিয়মিত প্রকাশের সাথে অর্জন করা যায়। আমি পিএইচপি-তে সন্ধান পেয়েছি সেরা সমাধান সহ একটি নিবন্ধটি একটি বৈধ ইমেল ঠিকানা কী? । স্পষ্টতই, এটি জাভাতে পোর্ট করা হয়েছে। আমি মনে করি ফাংশনটি জাভাস্ক্রিপ্টে পোর্ট করা এবং ব্যবহারের জন্য খুব জটিল। জাভাস্ক্রিপ্ট / নোড.জেএস পোর্ট: https://www.npmjs.com/package/email-addresses

একটি ভাল অনুশীলন হ'ল ক্লায়েন্টে আপনার ডেটা যাচাই করা, তবে সার্ভারে বৈধতাটি ডাবল-চেক করুন। এটি মনে রেখে, আপনি কেবল ক্লায়েন্টের কোনও স্ট্রিং বৈধ ইমেল ঠিকানার মতো দেখতে পাচ্ছেন কিনা এবং সার্ভারে কঠোর চেক করতে পারেন।

আমি এখানে জাভাস্ক্রিপ্ট ফাংশনটি যাচ্ছি তা পরীক্ষা করতে ব্যবহার করি যে কোনও স্ট্রিং কোনও বৈধ মেইল ​​ঠিকানার মতো দেখাচ্ছে:

function looksLikeMail(str) {
    var lastAtPos = str.lastIndexOf('@');
    var lastDotPos = str.lastIndexOf('.');
    return (lastAtPos < lastDotPos && lastAtPos > 0 && str.indexOf('@@') == -1 && lastDotPos > 2 && (str.length - lastDotPos) > 2);
}

ব্যাখ্যা:

  • lastAtPos < lastDotPos: শেষটি @সর্বশেষের আগে হওয়া উচিত .কারণ @সার্ভার নামের অংশ হতে পারে না (যতদূর আমি জানি)।

  • lastAtPos > 0: শেষের আগে কিছু (ইমেল ব্যবহারকারীর নাম) থাকা উচিত @

  • str.indexOf('@@') == -1: @@ঠিকানার মধ্যে কোনও হওয়া উচিত নয় । এমনকি যদি @তাই ই-মেইল ব্যবহারকারীর নাম শেষ অক্ষর হিসাবে প্রদর্শিত হবে, এটা উদ্ধৃত করা হয়েছে "যে এর মধ্যে হতে হবে @এবং শেষ @ঠিকানা হবে।

  • lastDotPos > 2: উদাহরণস্বরূপ, শেষ বিন্দুটির আগে কমপক্ষে তিনটি অক্ষর থাকা উচিত a@b.com

  • (str.length - lastDotPos) > 2: দ্বি-অক্ষরের ডোমেন গঠনের জন্য শেষ বিন্দুর পরে পর্যাপ্ত অক্ষর থাকতে হবে। বন্ধনী আবশ্যক কিনা তা আমি নিশ্চিত নই।


এই এফএন দেখতে সুন্দর লাগছে, তবে উপরের উত্তরে রাইগেক্সের চেয়ে ভাল এটি কি ভাল?
অতুল গোয়াল

4
আমি এটাকে সন্দেহ করি. আমি এটি কেবলমাত্র কোনও স্ট্রিং ইমেলের মতো দেখাচ্ছে কিনা তা যাচাই করতে এবং বিশদটি সার্ভার-সাইড কোডে রেখেই ব্যবহার করি।
মিলিও রাউইয়

এটি 'আআআ' এর মতো কোনও স্ট্রিংকে ওকে বৈধ করে, অর্থাত '@' এবং 'ছাড়াই।
Gennady Shumaakher

1
এটা করা উচিত নয়। লাস্ট ইন্ডেক্সঅফ () এর সূচিটি পাওয়া না গেলে -1 ফিরতে হবে।
মিলো রায়েই

"এমনকি @ইমেল ব্যবহারকারীর নামটিতে শেষ চরিত্র হিসাবে উপস্থিত হলেও, এটি উদ্ধৃত "করতে হবে ঠিকানার মধ্যে @এবং শেষের @মধ্যে।" কি হবে "@@"@example.com?
রাই-

47

এটি 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;}


4
{2,4} থেকে 6 2,6} পরিবর্তন করা কোনও সমস্যা হবে না
আন্তন এন

11
@ অ্যান্টন এন: এটিতে প্রায় এক গাজিলিয়ন অন্যান্য সমস্যাও রয়েছে; ফাইনালটি {2,4}কেবল এটির একটি কার্যকর সূচক (যেমন "আপনি যখন ত্রুটিটি দেখেন, অন্যরাও সম্ভবত আশেপাশে থাকে")। সবচেয়ে মৌলিক এক অভাব +স্থানীয় অংশে; উপরের কমিট করা সমস্ত ত্রুটি চিহ্নিত করতে এই মন্তব্য বাক্সটি খুব ছোট ।
পিসকভোর

37
আপনি শুধু করতে পারবেন না কেন return filter.test(email.value);?
এমটি

3
@ অ্যান্টনএন: এখন আমাদের 10+ টি অক্ষর টিএলডি রয়েছে ( xn--clchc0ea0b2g2a9gcd)। তবুও সমস্যা নেই?
পিসকভোর

42

এটা কর:

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

কেন? এটি আরএফসি 2822 এর উপর ভিত্তি করে , যা একটি মানক সমস্ত ইমেল ঠিকানা মেনে চলা উচিত। এবং আমি নিশ্চিত নই যে আপনি কেন "সরল" কিছু নিয়ে বিরক্ত করবেন ... আপনি যেভাবেই অনুলিপি করে পেস্ট করবেন;)

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

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

জাভাস্ক্রিপ্টে এটি ব্যবহারের একটি উদাহরণ এখানে রয়েছে (শেষে কেস সংবেদনশীল পতাকা iসহ)।

var emailCheck=/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
console.log( emailCheck.test('some.body@domain.co.uk') );

দ্রষ্টব্য :
প্রযুক্তিগতভাবে কিছু ইমেলগুলি উদ্ধৃতি @চিহ্নের অভ্যন্তরে অব্যাহত অক্ষরের সাথে চিহ্নের আগে বিভাগে কোটস অন্তর্ভুক্ত করতে পারে (যাতে আপনার ইমেল ব্যবহারকারীর অশ্লীল হতে পারে এবং স্টাট থাকতে পারে @এবং "..."যতক্ষণ তা উদ্ধৃতিতে লেখা থাকে)। কেউ এই কখনও করেনি! এটি অপ্রচলিত। তবে, এটি সত্য আরএফসি 2822 স্ট্যান্ডার্ডের অন্তর্ভুক্ত এবং এখানে বাদ দেওয়া হয়েছে it

আরও তথ্য: http://www.regular-expressions.info/email.html


/iনিয়মিত এক্সপ্রেশন শেষে পতাকাটির কারণে জাভাস্ক্রিপ্ট কোড সংবেদনশীল নয় কনডাল । আমি এটি উল্লেখ করি যে এটি কেস-সংবেদনশীল তুলনা করা দরকার, তবে আমি এটি আরও পরিষ্কার করে দেব।
রায়ান টেইলর

মোহন হিসাবে আমার জন্য কাজ করেছেন
অ্যালেক্স ২

40

আমি সত্যিই এই সমস্যাটি সমাধানের অপেক্ষায় রয়েছি। তাই আমি উপরে ইমেল বৈধতা নিয়মিত প্রকাশ প্রকাশ করেছি

  • মূল
    /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

  • সংশোধিত
    /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()\.,;\s@\"]+\.{0,1})+[^<>()\.,;:\s@\"]{2,})$/

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

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

এখানে চিত্র বর্ণনা লিখুন


এটি একটি ভাল সমাধানের মতো বলে মনে হচ্ছে এটি নতুন টিএলডি এবং 1 টি চিঠি ইমেলের সাথেও কাজ করে
মার্ক হিউজ

কেন john..doe@example.comসঠিক হতে হবে না? এটি একটি বৈধ কোণার কেস।
ভ্যালারিও বোজ

24

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

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

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

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

বিশ্বের সহজ কোড দরকার ...


15
এটি এতগুলি অবৈধ ইমেল ঠিকানা প্রবেশের অনুমতি দেয় এটি অকেজো পরামর্শ।
কাজলব

3
একেবারে ডিবাগ করা অসম্ভব হবে না। এই থ্রেডে এমন অনেকগুলি সূক্ষ্ম উদাহরণ রয়েছে যা "এর মধ্যে একটি '@' রয়েছে তার চেয়ে আরও বেশি যাচাই করে Your আপনার উদাহরণটি" u @ "কে একটি বৈধ ইমেল ঠিকানা হিসাবে বিবেচনা করতে দেয় least একটি ডোমেন হতে পারে ইতি আমি কি কল চাই একটি উদাহরণ আমি নিশ্চিত নই কেন আপনি তা রক্ষার হয় যেমন দ্বারা পর্যন্ত থ্রেড সর্বনিম্ন রেট উত্তর। "সহিংস অলস কোডিং।"।
cazlab

3
@ কাজলব সম্ভবত আপনি ঠিক বলেছেন। সব পরে আমাকে ভোট দেওয়া হয়েছে। আপনার থেকে আলাদাভাবে আমি ভাবি না যদিও উপরের কোনও কোড স্নিপেটগুলি ডিবাগ করা সহজ দেখায়। আমার 'আগ্রাসীভাবে অলস' পদ্ধতির প্রয়োজন হলে কমপক্ষে উন্নতি করা যেতে পারে।
Zo72

3
এটি কীভাবে রেজেক্স ব্যবহার থেকে আলাদা? (.+)@(.*)একই জিনিস, এবং খাটো।
স্নোস্টর্ম

4
+1 - যদি উদ্দেশ্যটি নিশ্চিত করা হয় যে ব্যবহারকারী কমপক্ষে কোনও ই-মেইল ঠিকানা স্থাপনের চেষ্টা করেছেন, তবে এটি নির্ধারণ করা যেতে পারে যে ইমেল ঠিকানাটি অবশ্যই কোনও ইমেল নয় কিনা তা পরীক্ষা করে দেখা হচ্ছে দুর্দান্ত সমাধান একটি ভাল উদাহরণ হ'ল যদি আপনি কোনও ব্যক্তির ব্যবহারকারীর নামটি একটি ইমেল ঠিকানা হতে চান। যদি ব্যবহারকারী 'সেক্সি_চিক ৩২' এ টাইপ করেন, তবে এই রেজেেক্সটি কোনও ইমেল প্রত্যাশিত বলে তাদের মাথা দিতে ব্যবহার করা যেতে পারে। যদি এতে কোনও টাইপ করা থাকে তবে এটি ইমেলের মতো মনে হয় তবে তা না হলে ব্যবহারকারী কখনই 'নিশ্চিতকরণ' ইমেল পাবেন না এবং সাইন আপ প্রক্রিয়াটি কখনই বৈধ হবে না।
ক্রিস ডাট্রো

23

প্রবেশ করা ইমেল ঠিকানাটি বৈধ কিনা তা এইচটিএমএল ব্যবহার না করে কেবল তা পরীক্ষা করে দেখুন।

<input type="email"/>

বৈধতার জন্য কোনও ফাংশন লেখার দরকার নেই।


4
আইই <10 এটি সমর্থন করে না এবং অ্যান্ড্রয়েডের নিজস্ব ব্রাউজারও নয়।
ফ্র্যাঙ্ক কনিজন

7
Upvoting। আইই <10 মারা গেছে।
মাইকেল শ্যাপার

19

কোনও ইমেল বৈধকারী 100% সঠিক পাওয়া শক্ত It's এটি সঠিক হওয়ার একমাত্র আসল উপায় হ'ল অ্যাকাউন্টে একটি পরীক্ষার ইমেল প্রেরণ করা। এটি বলেছিল, কয়েকটি বেসিক চেক রয়েছে যা নিশ্চিত করতে সহায়তা করতে পারে যে আপনি যুক্তিসঙ্গত কিছু পাচ্ছেন।

উন্নত করার জন্য কিছু জিনিস:

নতুনের পরিবর্তে RegExp, কেবল এইভাবে লেখার চেষ্টা করুন regexp:

if (reg.test(/@/))

দ্বিতীয়ত, @সাইন-এর পরে একটি পিরিয়ড আসে কিনা তা পরীক্ষা করে দেখুন এবং নিশ্চিত করুন যে @এস এবং পিরিয়ডের মধ্যে অক্ষর রয়েছে ।


19

এই হল কিভাবে নোড-যাচাইকারী এটা আছে:

/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[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]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/

14

আপনার বৈধকরণকারী ফাংশনের ভিতরে এই কোডটি ব্যবহার করুন:

var emailID = document.forms["formName"]["form element id"].value;
atpos = emailID.indexOf("@");
dotpos = emailID.lastIndexOf(".");
if (atpos < 1 || ( dotpos - atpos < 2 ))
{
    alert("Please enter correct email ID")
    return false;
}

অন্যথায় আপনি jQuery ব্যবহার করতে পারেন । ভিতরে নিয়ম সংজ্ঞায়িত:

eMailId: {
    required: true,
    email: true
}

1
abc@xyzএটি পুরোপুরি বৈধ ইমেল যা আপনার রেজেক্স দ্বারা স্বীকৃত নয়।
টোটো

3
না এইটা না. সঠিক ইমেল প্যাটার্নটি হ'ল কিছু ইমেল_সোমথিং sসামথিং, abc @ xyz সেই প্যাটার্নটির সাথে মেলে না। সুতরাং, এটি কোনও বৈধ ঠিকানা নয়।
অর্কিড

এখানে একবার দেখুন: en.wikedia.org/wiki/Email_address#Valid_email_addresses
টোটো

5
আপনি উইকিপিডিয়া পৃষ্ঠাটি করেছেন? একটি টিএলডি একটি বৈধ হোস্ট-নেম। সুতরাং abc@tldএকটি বৈধ ইমেইল ঠিকানা।
টোটো

2
কোনও ইমেল ঠিকানা বৈধ করার একমাত্র উপায় হ'ল একটি ইমেল প্রেরণ করে তার প্রতিক্রিয়াটির জন্য অপেক্ষা করুন। এগুলি ছাড়াও, এখানে একটি ইউআরএল রয়েছে যেখানে আপনি পরীক্ষা করতে পারবেন যদি আপনার ঠিকানাটি অনুগ্রহ করে আরএফসি 822: পৌরাণিক-beast.com/~pdw/cgi-bin/emailuthorate । আপনি দেখতে পারেন যে abc @ xyz হল আরএফসি 822 এর একটি বৈধ ঠিকানা।
টোটো

14

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

let val = 'email@domain.com';
if(/^[a-z0-9][a-z0-9-_\.]+@([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-_\.]+@([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


এটি একটি স্ট্যান্ডার্ড ইমেল
@

1
@ রিকস এটি সহজ নয়। দয়া করে আবার যাচাই করুন
ম্যালিমো

13

টিএলডির অস্তিত্ব যাচাই করে না এমন একটি সমাধান অসম্পূর্ণ।

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

1- ইমেল ফর্ম্যাটটির বৈধতা: নিশ্চিত হওয়া নিশ্চিত করা হচ্ছে যে ইমেলটি আরএফসি 5322-তে ইমেলের বিন্যাস এবং প্যাটার্নটির সাথে সম্মতি জানায় এবং যদি টিএলডি আসলে উপস্থিত থাকে। সমস্ত বৈধ টিএলডিগুলির একটি তালিকা এখানে পাওয়া যাবে

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

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


13

ইমেল ঠিকানা যাচাইয়ের জন্য রেজেেক্স

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

আমি RFC5322 আপনার regexp দেখতে না পান: tools.ietf.org/html/rfc5322 - কিছু ভুল?
কামিল কিয়েসজেউস্কি

"সেরা রেগেক্স কখনও"? সম্ভবত এখানে কিছু ধরণের ব্যাখ্যা?
কানেক্টইউরচার্জার

কেন আপনি বলেছেন যে এটি সবার সেরা সমাধান, আপনি দয়া করে আরও কিছু ব্যাখ্যা করতে পারেন?
ন্যানকোডার

আমি কেন "সর্বকালের সেরা রেজেক্স" লিখেছি তা মনে করতে পারছি না। দুঃখিত যদি বন্ধুরা আপনাকে বিরক্ত করে।
প্রভাত কাসের

12

ইমেল ঠিকানাগুলি যাচাই করতে নিয়মিত এক্সপ্রেশন ব্যবহার করার বিষয়ে এখানে খুব ভাল আলোচনা রয়েছে; " নিয়মিত অভিব্যক্তি বৈধকরণের ই-মেইল ঠিকানার তুলনা "

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

/^[-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

9
-1 শ্বেত তালিকাটি কাঙ্ক্ষিত হওয়ার জন্য অনেকগুলি পাতা দেয় - উল্লেখযোগ্যভাবে, আপনি মিস করেছেন .jobs। এছাড়াও, লাইভ আইডিএন রয়েছে (যার মধ্যে বেশিরভাগ, আমি স্বীকার করি, কেবলমাত্র আপনার পোস্টের পরে অনুমোদিত হয়েছিল - যেমন .中國জুন ২০১০; তবে বেশিরভাগ বছর ধরে কাজ চলছে) in
পিসকভোর

2
-1 ধ্রুবক শীর্ষ স্তরের ডোমেন ব্যবহার করবেন না। সর্বদা সেখানে (এবং উদাহরণস্বরূপ 2013 থাকবে) নতুন টিএলডি যোগ করা যেতে পারে।
মিহো

নতুন টিএলডি'র 100 টি নিশ্চিত হয়েছে। এই উত্তরটি বৈধ নয় এবং কখনও ব্যবহার করা উচিত নয়।
ডিন মিহান

হা. আমি এটি ২০১১ সালে বলেছি, এবং আমি এটি আবার বলব: "বিশেষ" ডোমেনগুলির একটি শ্বেত তালিকা কেবল সময়ের সাথে আরও খারাপ হয়ে উঠবে, কারণ আরও টিএলডি অনুমোদিত হয়। 100 তুলনায় আরো সম্পূর্ণরূপে বৈধ উপরে পরিচ্ছন্ন তালিকা মিলে না TLDs এ আছে: en.wikipedia.org/wiki/List_of_Internet_top-level_domains
Piskvor বিল্ডিং বাম

এটি 2015. আপনার অভিব্যক্তি ব্যবহারিক নয়। আপনার এই উত্তরটি নিচে নেওয়া উচিত, তবে আপনি সম্ভবত এই প্রকাশটি প্রকাশ করেছেন এমন সমস্ত পৃষ্ঠাগুলি ঠিক করতে আপনার খুব ব্যস্ত। রাইট?
এরিক লেরয়

12

স্পষ্টতই, এটি:

/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([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 তে নেওয়া হয়েছে ।

তবে, অবশ্যই, এটি আন্তর্জাতিকীকরণকে উপেক্ষা করছে।


12

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

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('youremail@yourdomain.com')){ console.log('This is email is valid'); }

10
আপনি প্রয়োজন হবে না == trueআপনার উদাহরণ।
লুক অল্ডার্টন

11

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

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

function check_email(val){
    if(!val.match(/\S+@\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('check@thiscom'); // Returns false
check_email('check@this..com'); // Returns false
check_email(' check@this.com'); // Returns false
check_email('check@this.com'); // Returns true

10
<form name="validation" onSubmit="return checkbae()">
    Please input a valid email address:<br />

    <input type="text" size=18 name="emailcheck">
    <input type="submit" value="Submit">
</form>

<script language="JavaScript1.2">
    var testresults
    function checkemail(){
        var str = document.validation.emailcheck.value
        var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
        if (filter.test(str))
            testresults = true
        else {
            alert("Please input a valid email address!")
            testresults = false
        }
        return (testresults)
    }
</script>

<script>
    function checkbae(){
        if (document.layers || document.getElementById || document.all)
            return checkemail()
        else
            return true
    }
</script>

আপনি যদি এর সাথে যেতে কোনও ব্যাখ্যা বা বিবরণ যোগ করেন তবে? আমি মনে করি না যে আপনাকে সত্যিই কোনও এইচটিএমএল দেখানো দরকার; সমস্ত লোকেরা জাভাস্ক্রিপ্ট এবং রেজেক্সের সাথে সম্পর্কিত। যদি আপনি কেবল জ্যাকাস্ক্রিপ্টে আপনার উত্তর হ্রাস করেন এবং এটির সাথে যেতে সামান্য ব্লার্ব যোগ করেন তবে আমি আপনাকে একটি উত্সাহ দেব।
বিজিএম কোডার

9

আমি জেএসে একটি রেইজেক্সের সন্ধান করছিলাম যা সমস্ত ইমেল ঠিকানা পরীক্ষার কেসগুলি পাস করে:

  • email@example.com বৈধ ইমেইল

  • firstname.lastname@example.com ইমেল ঠিকানা ক্ষেত্রের বিন্দু রয়েছে

  • email@subdomain.example.com ইমেলটিতে সাবডোমেন সহ ডট থাকে

  • firstname+lastname@example.com প্লাস চিহ্নটি বৈধ চরিত্র হিসাবে বিবেচিত হয়

  • email@192.0.2.123 ডোমেনটি বৈধ আইপি ঠিকানা

  • email@[192.0.2.123] আইপি ঠিকানার চারপাশে স্কোয়ার ব্র্যাকেটটি বৈধ হিসাবে বিবেচিত হয়

  • “email”@example.com ইমেলের চারপাশে উদ্ধৃতিগুলি বৈধ বলে বিবেচিত হয়

  • 1234567890@example.com ঠিকানার অঙ্কগুলি বৈধ

  • email@domain-one.example ডোমেন নামের ড্যাশ বৈধ

  • _______@example.com অ্যাড্রেস ফিল্ডে ইন্ডস্কোর বৈধ

  • email@example.name .name বৈধ শীর্ষ স্তরের ডোমেন নাম

  • email@example.co.jpশীর্ষ স্তরের ডোমেন নামের মধ্যে ডটকেও বৈধ বলে মনে করা হয় ( co.jpউদাহরণ হিসাবে এখানে ব্যবহার করে )

  • firstname-lastname@example.com ঠিকানার ক্ষেত্রে ড্যাশ কার্যকর

এখানে আমরা যাচ্ছি:

http://regexr.com/3f07j

বা রেজেক্স:

Regex = /(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@[*[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+]*/

8

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

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

এটি ত্রুটিযুক্ত হওয়ার ক্ষেত্রে আমি এখানে যা পোস্ট করি তা যদিও এটি সর্বদা আমার প্রয়োজনের জন্য নিখুঁত।


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