প্রথম এবং পদবি জন্য নিয়মিত প্রকাশ


124

ওয়েবসাইট বৈধতার উদ্দেশ্যে, আমার প্রথম নাম এবং শেষ নাম বৈধতা প্রয়োজন।

প্রথম নামের জন্য এটিতে কেবল অক্ষর থাকা উচিত, ফাঁকা জায়গাগুলির সাথে কয়েকটি শব্দ থাকতে পারে এবং সর্বনিম্ন তিনটি অক্ষর থাকতে পারে, তবে সর্বোচ্চ 30 টি অক্ষর থাকতে পারে। একটি খালি স্ট্রিং যাচাই করা উচিত (যেমন জেসন , জেসন , জেসন স্মিথ , জেসন স্মিথ , JASON , জেসন স্মিথ , জেসন স্মিথ , এবং জেসন স্মিথ )।

শেষ নামটির জন্য, এটি একটি শব্দ, কেবলমাত্র অক্ষর, কমপক্ষে তিনটি অক্ষর সহ, তবে কমপক্ষে 30 টি অক্ষর হওয়া উচিত। খালি স্ট্রিংগুলিকে বৈধতা দেওয়া উচিত নয় (যেমন লাজস্লো , ল্যাজস্লো এবং ল্যাজস্লো )।


10
'জো' এর মতো প্রথম নামগুলির কী হবে?
a'r

6
কেবলমাত্র একটি মন্তব্য:
হাইফেনগুলি সর্বশেষ নামগুলিতে

2
দ্রষ্টব্য: একটি নিয়মিত এক্সপ্রেশন বৈদ্যুতিনায়ক খালি ইনপুট উপেক্ষা করবে: এটি আপনি যা চান তা হতে পারে বা নাও পারে।
হানস কে st ইং

4
যদি যথাসম্ভব সম্ভব হয়, যদি না আপনার প্রথম এবং শেষ নাম প্রয়োজনের জন্য আশ্চর্যজনকভাবে বাধ্যতামূলক কারণ না থাকে তবে কেবল একটি একক "নাম" ক্ষেত্র সরবরাহ করুন। kalzumeus.com/2010/06/17/…
ক্রিস

1
বা "এক্স Æ এ -12" টুইটার.
ishষি দুয়া

উত্তর:


195

নামগুলির মতো ভুলে যাবেন না:

  • ম্যাথিয়াস ডিআরাস
  • মার্টিন লুথার কিং জুনিয়র.
  • হেক্টর সসেজ-হেসেন

এটি বেশিরভাগ জিনিসের জন্য কৌশলটি করা উচিত:

/^[a-z ,.'-]+$/i

বা সুপার মিষ্টি ইউনিকোড সহ আন্তর্জাতিক নামগুলি সমর্থন করুন:

/^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$/u


4
আমি এই রেজিএক্সপসের বিশেষ চরিত্রগুলি এড়িয়ে যাব - বিশেষত .(দশমিক পয়েন্ট / ডট / ফুল স্টপ) যেহেতু এটি
রিজ এক্সপ্স

30
আপনি সম্ভাব্য সমস্ত জাতীয় অক্ষর বৈধ করতে পারবেন না। উদাহরণস্বরূপ হাঙ্গেরীয় অক্ষরগুলি őŐűŰঅনুপস্থিত, পোলিশ অক্ষরগুলিও łŁ, বেশ কয়েকটি লিথুয়ানিয়ান এবং লাত্ভীয় অক্ষরের উল্লেখ না করে। বরং এমন একটি লাইব্রেরি সন্ধানের চেষ্টা করুন যা বহিরাগত চরিত্রগুলিকে যথাযথ অ্যাকসেন্ট-কম সংস্করণে রূপান্তর করে, তারপরে /^[a-z ,.'-]+$/iরিজেপেক্স লিখুন ।
গ্যাবর্স

69
সুতরাং 陳大文এখানে একটি বৈধ নাম না?
অ্যালভিন ওয়াং

16
ইউনিকোডের জন্য /^[\p{L}'][ \p{L}'-]*[\p{L}]$/u, তবে বেশ ক্ষমাশীল ব্যবহার করুন ।
ফ্রেডেরিক ক্রাউটওয়াল্ড

4
এজেডকে মূল উদাহরণে অন্তর্ভুক্ত করার দরকার নেই কারণ অভিব্যক্তির পরে আই সংশোধক মানে কেস উপেক্ষা করুন।
মোহনা

73

আপনি প্রথম এবং শেষ নামটির ফর্ম্যাটটিতে মিথ্যা অনুমান করেছেন। নামটি খালি রয়েছে তা পরীক্ষা না করে নামটি মোটেও বৈধ না করা ভাল।


একটি মন্তব্য করা উচিত ছিল।
ডেমেন্টিক

32

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

^[\w'\-,.][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]]{2,}$

অক্ষর সমর্থিত:

abcdefghijklmnopqrstwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
áéíóúäëïöüÄ'
陳大文
łŁőŐűŰZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųū
ÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁ
ŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ.-
ñÑâê都道府県Федерации
আবাসযোগ্য জমির걸쳐 있는

2
সমস্ত উত্তরগুলির মধ্যে এই একটি এনজি 4 ব্যবহার করে
মনোযোগের

1
আপনার রেজেক্স 2 টি অক্ষরের স্ট্রিংয়ে ব্যর্থ। আমি মনে করি এটি এটি স্থির করেছে^[\w'\-,.]*[^_!¡?÷?¿\/\\+=@#$%ˆ&*(){}|~<>;:[\]]*$
টিকেএ

জাতীয় চরিত্রগুলি সমর্থিত তবে প্রথম অবস্থানে নয়। আমি এক্সপ্রেশনটি পরিবর্তন করব^[^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]]{2,}$
TOUDIdel

18

নামগুলি মোকাবেলার জন্য আমি একটি কাস্টম রেজেক্স তৈরি করেছি:

আমি এই ধরণের নামগুলি চেষ্টা করে দেখেছি এবং নিখুঁতভাবে কাজ করে যাচ্ছি

  1. জন স্মিথ
  2. জন ডি'লার্জি
  3. জন ডো-স্মিথ
  4. জন ডো স্মিথ
  5. হেক্টর সসেজ-হেসেন
  6. ম্যাথিয়াস ডিআরাস
  7. মার্টিন লুথার কিং
  8. আই ওয়াং
  9. চাও চাং
  10. আলজবেতা বড়

আমার RegEx এর মত দেখাচ্ছে:

^([a-zA-Z]{2,}\s[a-zA-Z]{1,}'?-?[a-zA-Z]{2,}\s?([a-zA-Z]{1,})?)

এমভিসি 4 মডেল:

[RegularExpression("^([a-zA-Z]{2,}\\s[a-zA-Z]{1,}'?-?[a-zA-Z]{2,}\\s?([a-zA-Z]{1,})?)", ErrorMessage = "Valid Charactors include (A-Z) (a-z) (' space -)") ]

\\পালানোর অক্ষরের জন্য দয়া করে ডাবলটি নোট করুন

আপনারা যারা রেজিএক্সে নতুন তাদের জন্য আমি ভেবেছিলাম আমি একটি ব্যাখ্যা অন্তর্ভুক্ত করব।

^               // start of line
[a-zA-Z]{2,}    // will except a name with at least two characters
\s              // will look for white space between name and surname
[a-zA-Z]{1,}    // needs at least 1 Character
\'?-?           // possibility of **'** or **-** for double barreled and hyphenated surnames
[a-zA-Z]{2,}    // will except a name with at least two characters
\s?             // possibility of another whitespace
([a-zA-Z]{1,})? // possibility of a second surname

আমার একটি ইউনিট পরীক্ষা আছে যা বেশ কয়েকটি নাম পরীক্ষা করে, তারপরে বেশ কয়েকটি জিনিস যা নাম নয়। নাম তালিকাতে প্রথম পরীক্ষার হিসাবে 'টেস্ট টোকেন' রয়েছে। এই যে মেলে।
রব

এটি আমি যা খুঁজছিলাম প্রায় আমার ধারণা (সম্ভবত ভুলভাবে) আপনি একজন ফরাসি লোক। ফ্রেঞ্চ ভাষায় আপনি মুখোমুখি হতে পারেন এমন একটি মামলা হ্যান্ডেল নয়: জিন-পিয়েরি, মেরি-শার্লোট ইত্যাদির মতো রচিত নামগুলি ... আমি রেজিস্ট এক্সপ্রেসে নতুন তবে আমার ধারণা -? আপনি যেমন প্রথম নামটির জন্য করেছিলেন, প্রথম প্রথম দুটি শব্দের মধ্যে, কাজটি করতে পারে।
লিন্টকিটার

হাই লিন্ট্পটার, ফরাসি নয়, তবে আমার একটি ফ্রেঞ্চ নাম রয়েছে। হ্যাঁ. আমি এটি পরীক্ষা করে দেখিনি, তবে আপনার প্রথম []] পরিবর্তনটি যুক্ত করতে সক্ষম হওয়া উচিত: ^ ([a-zA-Z] {2,} [s [a-zA-z] {1,} ' ? -? [a-zA-Z] {2,} \ s? ([a-zA-Z] {1,})?) TO: ^ ([a-zA-Z -] {2,} \ s [a-zA-z] {1,} '? -? [a-zA-Z] {2,} \ s? ([a-zA-Z] {1,})?)
ফ্রাঙ্কোইস মুলার

16

আমি এটি অনুসন্ধান করেছি এবং অনুসন্ধান করেছি এবং এটি খেলেছি এবং এটি নিখুঁত না হলেও এটি অন্যদের প্রথম এবং শেষ নামগুলি যা একটি ভেরিয়েবল হিসাবে দেওয়া হয়েছে তা বৈধ করার চেষ্টা করতে সহায়তা করতে পারে।

আমার ক্ষেত্রে, সেই পরিবর্তনশীলটি হ'ল নাম।

আমি আমার পিএইচপি জন্য নিম্নলিখিত কোড ব্যবহার করেছি:

    if (preg_match('/\b([A-Z]{1}[a-z]{1,30}[- ]{0,1}|[A-Z]{1}[- \']{1}[A-Z]{0,1}  
    [a-z]{1,30}[- ]{0,1}|[a-z]{1,2}[ -\']{1}[A-Z]{1}[a-z]{1,30}){2,5}/', $name)  
    # there is no space line break between in the above "if statement", any that   
    # you notice or perceive are only there for formatting purposes.  
    # 
    # pass - successful match - do something
    } else {
    # fail - unsuccessful match - do something

আমি নিজেই RegEx শিখছি তবে আমার কাছে RegEx বন্ধু কর্তৃক প্রদত্ত কোডটির ব্যাখ্যা রয়েছে।
এটা এখানে:

Word ary b word একটি শব্দের সীমানায় অবস্থান যুক্ত করুন

নীচের নিয়মিত অভিব্যক্তিটি মেলে এবং এর ম্যাচটি ব্যাক্রেরেন্স নম্বর 1
[([এজেড] {1} [এজে] {1,30} [-] {0,1} | [এজেড] {1} [- \ '] {এ ক্যাপচার করুন) 1} [এজেড] {0,1} [আজ] {1,30} [-] {0,1} | [আজ]] 1,2} [- \ '] {1} [এজেড] {1} [ AZ] {1,30}) {2,5} »

2 থেকে 5 বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজনীয় হিসাবে ফিরে দেওয়া (লোভী) {{2,5} »

* আমি এই নোটের র‌্যামিফিকেশনগুলি বিবেচনা করে এখানে কিছু সাহায্যের প্রয়োজন *

দ্রষ্টব্য: আমি ক্যাপচারিং গ্রুপটি নিজেই পুনরাবৃত্তি করেছি। গোষ্ঠীটি কেবল সর্বশেষ পুনরাবৃত্তিটি ক্যাপচার করবে। সমস্ত পুনরাবৃত্তি ক্যাপচার জন্য পুনরাবৃত্তি গোষ্ঠীর চারপাশে একটি ক্যাপচারিং গ্রুপ রাখুন। «{2,5}»

নীচের নিয়মিত এক্সপ্রেশনটির সাথে মেলে (কেবলমাত্র এটির ব্যর্থ হলে পরবর্তী বিকল্পের চেষ্টা করা) «[এজেড]} 1 az [এজে] {1,30} [-] {0,1}»

"A" এবং "জেড" between [এজেড] {1} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে

ঠিক 1 বার «{1}

"ক" এবং "জেড" between [আজ] {1,30} between এর মধ্যে সীমাতে একটি একক অক্ষরটির সাথে মেলে

এক থেকে 30 বারের মধ্যে, যতবার সম্ভব সম্ভব হয়ে ওঠা (লোভী) giving {1,30} »

"-" «[-] {0,1} list তালিকায় উপস্থিত একটি চরিত্রের সাথে মিল করুন

শূন্য এবং এক বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজন হিসাবে ফিরে দেওয়া (লোভী) «{0,1}»

বা নীচের নিয়মিত 2 নম্বর এক্সপ্রেশনটি মেলে (কেবলমাত্র এটির ক্ষেত্রে ব্যর্থ হলে পরবর্তী বিকল্পের চেষ্টা করা) «[এজেড] {1} [- \ '] {1} [এজেড] {0,1} [এজে] {1,30} [ -] {0,1 »

"A" এবং "জেড" between [এজেড] {1} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে

ঠিক 1 বার «{1}

Below [- \ '] {1} below নীচের তালিকায় উপস্থিত একটি চরিত্রের সাথে মিল করুন

ঠিক 1 বার «{1}

একটি চরিত্র "-" «- 'এ' চরিত্র« \ '»

"A" এবং "জেড" এর মধ্যে পরিসরে একটি একক অক্ষর মেলে atch [এজেড] {0,1} »

শূন্য এবং এক বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজন হিসাবে ফিরে দেওয়া (লোভী) «{0,1}»

"ক" এবং "জেড" between [আজ] {1,30} between এর মধ্যে সীমাতে একটি একক অক্ষরটির সাথে মেলে

এক থেকে 30 বারের মধ্যে, যতবার সম্ভব সম্ভব হয়ে ওঠা (লোভী) giving {1,30} »

"-" «[-] {0,1} list তালিকায় উপস্থিত একটি চরিত্রের সাথে মিল করুন

শূন্য এবং এক বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজন হিসাবে ফিরে দেওয়া (লোভী) «{0,1}»

বা নীচে 3 নম্বর নিয়মিত অভিব্যক্তিটি মেলে (পুরো গ্রুপটি এটির সাথে মেলে যদি ব্যর্থ হয় তবে) «[আজ] {1,2} [- \ '] {1} [এজেড] {1} [এজে] {1,30} »

"ক" এবং "জেড" between [আজ] {1,2} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে

এক থেকে ২ বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজনীয় হিসাবে ফিরে দেওয়া (লোভী) {{1,2} »

"" এবং "'" «[- \'] {1} between এর মধ্যে বিস্তৃত একক চরিত্রের সাথে মেলে

ঠিক 1 বার «{1}

"A" এবং "জেড" between [এজেড] {1} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে

ঠিক 1 বার «{1}

"ক" এবং "জেড" between [আজ] {1,30} between এর মধ্যে সীমাতে একটি একক অক্ষরটির সাথে মেলে

এক থেকে 30 বারের মধ্যে, যতবার সম্ভব সম্ভব হয়ে ওঠা (লোভী) giving {1,30} »

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

আমি নিম্নলিখিত নামগুলিতে কোডটি পরীক্ষা করেছি এবং ফলাফলগুলি প্রতিটি নামের ডানদিকে বন্ধনীতে রয়েছে।

  1. স্মিথ স্টিভ (ব্যর্থ)
  2. স্টিভ 3 স্মিথ (ব্যর্থ)
  3. স্টিভ স্মিথ (ব্যর্থ)
  4. স্টিভ স্মিথ (ব্যর্থ)
  5. স্টিভ স্মাথ (স্টিভ এসএম-এ পাস করেছেন)
  6. বেয়ারে ডি'আর (বিয়ারওয়্যারগুলিতে পাস করা)
  7. জো ব্লো (পাস)
  8. হিউং কিউং উ (পাস)
  9. মাইক ও'নেল (পাস)
  10. স্টিভ জনসন-স্মিথ (পাস)
  11. জোজেফ-স্মোজেভ হিমডেল (উত্তীর্ণ)
  12. হে হেনরি স্মিথ (উত্তীর্ণ)
  13. মাথাইস ডিআরাস (পাস)
  14. মার্টিন লুথার কিং জুনিয়র (পাস)
  15. ডাউনটাউন-জেমস ব্রাউন (পাস)
  16. ড্যারেন ম্যাককার্টি (পাস)
  17. জর্জ ডি ফানক মাস্টার (পাস)
  18. কুর্তিস বি-বাল বাস্কেটবল (পাস)
  19. আহমদ এল জেফি (পাস)

যদি আপনার বুনিয়াদি নাম থাকে তবে উপরের কোডটির জন্য কাজ করার জন্য একাধিক পাঁচটির বেশি থাকতে হবে, যা পরীক্ষার সময় আমি ব্যবহার করেছি তার মতোই, এই কোডটি আপনার জন্য হতে পারে।

আপনার যদি কোনও উন্নতি হয় তবে দয়া করে আমাকে জানান। আমি ঠিক প্রাথমিক পর্যায়ে আছি (RegEx বের করার প্রথম কয়েক মাস)।

ধন্যবাদ এবং শুভকামনা, স্টিভ


1
"চতুর্থ" বা "চতুর্থ" এর মতো জিনিসগুলি কি এটির সাথে কাজ করবে?
মজিদারফ

11

প্রথম নাম হবে

"([a-zA-Z]{3,30}\s*)+"

আপনার যদি 30 টি অক্ষরের চেয়ে কম সংখ্যার পুরো নামের অংশটি প্রয়োজন হয় তবে আপনার মনে হয় এটি আলাদাভাবে পরীক্ষা করা উচিত I ভাব প্রকাশ করা ".{3,30}"উচিত।

আপনার শেষ নাম প্রয়োজনীয়তা অনুবাদ করা হবে

"[a-zA-Z]{3,30}"

তবে আপনার এগুলি পরীক্ষা করা উচিত। শূন্যস্থান সম্বলিত প্রচুর পদবি রয়েছে।


এই মধ্যে ফাঁকা স্থান পরীক্ষা করে?
Y_Y

2
ও'কনোর সম্পর্কে কী ? প্রেরিতকেও অন্তর্ভুক্ত করা দরকার।
স্পেসম্যান 24

1
বেশ অসম্পূর্ণ। হাইফেন সহ প্রথম নামটি "জিন-ক্লড" হতে পারে। শেষ নামটি উদ্ধৃতি সহ "ডি'আর্ক" হতে পারে। প্লাস, যদি "ফ্রানসোয়া" প্রথম নাম হয়?
বার্ট

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

এটি প্রচুর নন-
ইংলিশ

7

মেক যেমন বলেছেন:

নামগুলির মতো ভুলে যাবেন না:

ম্যাথিয়াস ডিআরাস

মার্টিন লুথার কিং জুনিয়র.

হেক্টর সসেজ-হেসেন

এবং কেসগুলি সরানোর জন্য:

..Mathias

মার্টিন কিং, জুনিয়র-

এটি আরও কেসগুলি কভার করবে:

^([a-z]+[,.]?[ ]?|[a-z]+['-]?)+$

আমি যদি আমার চরিত্রের দৈর্ঘ্য সীমাবদ্ধ করতে চাই তবে তার জন্য কোডটি কী হতে পারে?
জি.আবিহেসেক 14 ই

1
হ্যাঁ মার্টিন লুথার কিং জুনিয়র ম্যাচ হিসাবে ফিরেছেন, এবং কিং হেনরি অষ্টমও does
স্টিভ কিনজে

7

আমি আন্তর্জাতিক অ্যাপ্লিকেশন (আইসিএও) যাচাই করে এমন অ্যাপে কাজ করছি। আমরা কেবল ইংরেজী অক্ষরকে সমর্থন করি। যদিও বেশিরভাগ বিদেশী জাতীয় বর্ণগুলি লাতিন বর্ণমালায় একটি অক্ষর দ্বারা প্রতিনিধিত্ব করা যেতে পারে যেমন e ই দ্বারা, সেখানে বেশ কয়েকটি জাতীয় অক্ষর রয়েছে যাতে তাদেরকে প্রতিনিধিত্ব করার জন্য একটি অতিরিক্ত বর্ণের প্রয়োজন হয় যেমন জার্মান উমলৌতের জন্য একটি 'ই' অক্ষর যুক্ত করার প্রয়োজন হয় যেমন ä দ্বারা

এটি আমরা ব্যবহার করি প্রথম এবং শেষ নামগুলির জন্য জাভাস্ক্রিপ্ট রেজেেক্স:

/^[a-zA-Z '.-]*$/

আন্তর্জাতিক পাসপোর্টে অক্ষরের সর্বাধিক সংখ্যা 31 পর্যন্ত । আমরা রেজেক্সে অন্তর্ভুক্ত না করে আরও ভাল শব্দ ত্রুটি বার্তাগুলির জন্য সর্বোচ্চতা = "31" ব্যবহার করি।

ফর্ম এবং ত্রুটি হ্যান্ডলিং সহ AngularJS 1.6 এ আমাদের কোড থেকে একটি স্নিপেট এখানে রয়েছে:

class PassportController {
  constructor() {
    this.details = {};
    // English letters, spaces and the following symbols ' - . are allowed
    // Max length determined by ng-maxlength for better error messaging
    this.nameRegex = /^[a-zA-Z '.-]*$/;
  }
}

angular.module('akyc', ['ngMessages'])
  .controller('PassportController', PassportController);
 
.has-error p[ng-message] {
  color: #bc111e;
}

.tip {
  color: #535f67;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
<script src="https://code.angularjs.org/1.6.6/angular-messages.min.js"></script>

<main ng-app="akyc" ng-controller="PassportController as $ctrl">
  <form name="$ctrl.form">

    <div name="lastName" ng-class="{ 'has-error': $ctrl.form.lastName.$invalid} ">
        <label for="pp-last-name">Surname</label>
        <div class="tip">Exactly as it appears on your passport</div>
        <div ng-messages="$ctrl.form.lastName.$error" ng-if="$ctrl.form.$submitted" id="last-name-error">
          <p ng-message="required">Please enter your last name</p>
          <p ng-message="maxlength">This field can be at most 31 characters long</p>
          <p ng-message="pattern">Only English letters, spaces and the following symbols ' - . are allowed</p>
        </div>
        
        <input type="text" id="pp-last-name" ng-model="$ctrl.details.lastName" name="lastName"
               class="form-control" required ng-pattern="$ctrl.nameRegex" ng-maxlength="31" aria-describedby="last-name-error" />
      </div>

      <button type="submit" class="btn btn-primary">Test</button>

  </form>
</main>


পছন্দ করেছেন এটি ব্যবহার করুন: / ^ [a-zA-Z '.-] * $ /
আলেকজান্ডার বুড়াক্যভিচ

5

আমি ব্যবহার করি:

/^(?:[\u00c0-\u01ffa-zA-Z'-]){2,}(?:\s[\u00c0-\u01ffa-zA-Z'-]{2,})+$/i

এবং আরও কিছু উপায় ব্যবহার করে সর্বোচ্চতার জন্য পরীক্ষা করুন


5

এই রেজেক্সটি আমার জন্য কাজ করেছে (কৌনিক 8 এ ব্যবহার করছিল):

([a-zA-Z',.-]+( [a-zA-Z',.-]+)*){2,30}

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

এটি থাকলে তা অবৈধ হবে: -

  1. নামের কোনও শ্বেত স্পেস শুরু বা শেষ
  2. চিহ্নগুলি পেয়েছেন যেমন @
  3. 2 এর চেয়ে কম বা 30 এরও বেশি

অবৈধ প্রথম নাম উদাহরণ (সাদা স্থান)

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

বৈধ প্রথম নাম উদাহরণ:

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


6
'বিজার্ক গুয়ামুন্ডসডটিটার' সম্পর্কে কী?
মারিউজ জামরো

4

সরলতার জন্য, আপনি ব্যবহার করতে পারেন:

(.*)\s(.*)

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


2
^\p{L}{2,}$

a একটি লাইনের শুরুতে অবস্থান জোর দেয়।

\ p {L any যে কোনও ভাষা থেকে যে কোনও ধরণের অক্ষরের সাথে মেলে

{2,} কোয়ানটিফায়ার - 2 থেকে এবং সীমাহীন সময়ের মধ্যে ম্যাচগুলি, যতবার সম্ভব সম্ভব হিসাবে ফিরে দেওয়া (লোভী)

a একটি লাইনের শেষে অবস্থান জোর করে

সুতরাং এটি কোনও ভাষায় নাম বা অন্যান্য অক্ষর ছাড়া কমপক্ষে 2 টি অক্ষর (বা প্রতীক) সমেত একটি নাম হওয়া উচিত।


মনে রাখবেন যে 'এবং' - এর মতো কয়েকটি অক্ষর নামের ক্ষেত্রে বৈধ।
ম্যাথিজস সেগারস

1

সুতরাং, গ্রাহকের সাহায্যে আমরা এই ক্রেজি রেজেেক্সটি তৈরি করি:

(^$)|(^([^\-!#\$%&\(\)\*,\./:;\?@\[\\\]_\{\|\}¨ˇ“”€\+<=>§°\d\s¤®™©]| )+$)

1

প্রথম এবং শেষ নামগুলির জন্য সত্যিকার অর্থে কেবলমাত্র 2 টি জিনিস আপনার সন্ধান করা উচিত:

  1. লম্বা
  2. সন্তুষ্ট

আমার নিয়মিত প্রকাশটি এখানে:

var regex = /^selA-Za-z-, কাঠ{৩,২০} ?=.*\d)/

1. দৈর্ঘ্য

এখানে {3,20} স্ট্রিংয়ের দৈর্ঘ্য 3 এবং 20 টি অক্ষরের মধ্যে সীমাবদ্ধ করে।

2. বিষয়বস্তু

বর্গাকার বন্ধনীগুলির মধ্যে তথ্য [A-Za-z] বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরগুলিকে মঞ্জুরি দেয়। পরবর্তী সমস্ত চিহ্ন (-।) এরও অনুমোদিত।


1

এটিই আমি ব্যবহার করি।

এই রেজেক্স কেবলমাত্র ন্যূনতম অক্ষর সহ নাম গ্রহণ করে A-Z a-z ,space and -

নামগুলির উদাহরণ:

Ionut Ionete, Ionut-Ionete Cantemir, Ionete Ionut-Cantemirm Ionut-Cantemir Ionete-Second

নামের চরিত্রের সীমা 3 you আপনি যদি এটি পরিবর্তন করতে চান তবে {3,} থেকে {6, ify পরিবর্তন করুন

([a-zA-Z\-]+){3,}\s+([a-zA-Z\-]+){3,}

2
Ä å ö Ä Å Ö ইত্যাদি সম্পর্কে কী? সুইডিশ নামগুলিতে খুব সাধারণ। সর্বশেষ নাম ও'কনারও ব্যর্থ হবে এবং ডাবল ব্যারেলড নামগুলিও সমস্যাগুলি দেবে। যাদের এমন বৈধ নাম রয়েছে তাদের পক্ষে এটি খুব হতাশাব্যঞ্জক হবে।
উইল্ট করুন

ও'কনোরের মতো নামগুলিতে অ্যাডাস্ট্রোফের কী হবে?
ফোগমিস্টার

আমার অভিব্যক্তি মাইকেল জর্ডান ও'রিলি জুনিয়রকে একটি বৈধ নাম হিসাবে ফিরিয়ে দেয়
স্টিভ কিনজে

0

নিম্নলিখিত এক্সপ্রেশনটি ইউটিএফ -16 দ্বারা সমর্থিত যে কোনও ভাষায় কাজ করবে এবং এটি নিশ্চিত করবে যে নামেরটিতে সর্বনিম্ন দুটি উপাদান রয়েছে (যেমন প্রথম + শেষ), তবে মধ্যবর্তী নামের সংখ্যারও অনুমতি দেবে।

/^(\S+ )+\S+$/u

এই লেখার সময় মনে হয় অন্য উত্তরগুলির কোনওটিই সেই মানদণ্ডের সাথে মেলে না। এমনকি ^\p{L}{2,}$, যা নিকটতম এটি সংক্ষিপ্ত হয় কারণ এটি "অদৃশ্য" অক্ষরের সাথেও মিলবে U+FEFF( যেমন জিরো প্রস্থ নো-ব্রেক স্পেস)।


regexr.com এর জন্য জাভাস্ক্রিপ্ট পাস হয় না 1) সতর্ক করে দেওয়া ইউনিকোড বৈশিষ্ট্যটি সমস্ত ব্রাউজারে সমর্থন করা যায় না। 2) এছাড়াও এটি রেজেক্সে সংখ্যার অনুমতি দিচ্ছে। উদাহরণস্বরূপ: মাইকেল মিমিট ডিমিটসাসড 2123123
মাইকেল

0

আমি ইতিমধ্যে এখানে পোস্ট করেছি হিসাবে সর্বাধিক সামঞ্জস্যের জন্য এই সমাধানগুলি চেষ্টা করুন :

javascript:

var nm_re = /^(?:((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-.\s])){1,}(['’,\-\.]){0,1}){2,}(([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-. ]))*(([ ]+){0,1}(((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){1,})(['’\-,\.]){0,1}){2,}((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){2,})?)*)$/;

HTML5 এর:

<input type="text" name="full_name" id="full_name" pattern="^(?:((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-.\s])){1,}(['’,\-\.]){0,1}){2,}(([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-. ]))*(([ ]+){0,1}(((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){1,})(['’\-,\.]){0,1}){2,}((([^0-9_!¡?÷?¿/\\+=@#$%ˆ&*(){}|~<>;:[\]'’,\-\.\s])){2,})?)*)$" required>



-1

পিএইচপি মধ্যে preg_match ব্যবহার করে একটি সাধারণ ফাংশন

<?php
function name_validation($name) {
    if (!preg_match("/^[a-zA-Z ]*$/", $name) === false) {
        echo "$name is a valid name";
    } else {
        echo "$name is not a valid name";
    }
}

//Test
name_validation('89name');
?>


-2

আপনি যদি পৃথক শব্দের উপর কোনও বিধিনিষেধ না রেখে পুরো প্রথম নামটি 3 থেকে 30 অক্ষরের মধ্যে থাকতে চান তবে এটি চেষ্টা করুন:

[a-zA-Z ]{3,30}

সাবধান হন যে এটি সমস্ত বিদেশী অক্ষরকে é, è, à, as হিসাবে বাদ দেয় ï

আপনি যদি প্রতিটি স্বতন্ত্র শব্দের জন্য 3 থেকে 30 টি অক্ষরের সীমাবদ্ধতা চান তবে জেনস রিজেক্সপ কাজটি করবে।


-2
var name = document.getElementById('login_name').value; 
if ( name.length < 4  && name.length > 30 )
{
    alert ( 'Name length is mismatch ' ) ;
} 


var pattern = new RegExp("^[a-z\.0-9 ]+$");
var return_value = var pattern.exec(name);
if ( return_value == null )
{
    alert ( "Please give valid Name");
    return false; 
} 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.