স্ট্যান্ডার্ড 10 ডিজিটের ফোন নম্বর মেলে নিয়মিত প্রকাশ


125

আমি নীচের ফর্ম্যাটগুলিকে সমর্থন করে এমন একটি স্ট্যান্ডার্ড মার্কিন টাইপ ফোন নম্বরটির জন্য একটি নিয়মিত প্রকাশ লিখতে চাই:

###-###-####
(###) ###-####
### ### ####
###.###.####

যেখানে # মানে কোনও সংখ্যা। এখনও অবধি আমি নিম্নলিখিত মত প্রকাশের সাথে হাজির হয়েছি

^[1-9]\d{2}-\d{3}-\d{4}
^\(\d{3}\)\s\d{3}-\d{4}
^[1-9]\d{2}\s\d{3}\s\d{4}
^[1-9]\d{2}\.\d{3}\.\d{4}

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

+1 ### ### ####

যেখানে +1 হল অঞ্চল কোড এবং এটি alচ্ছিক।


5
স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 123559/… এর সম্ভাব্য সদৃশ হ'ল প্রস্তাবিত উত্তরটি হ'ল প্রতিটি অ-অঙ্কের চরিত্রকে সরিয়ে ফেলা। এইভাবে, আপনি
বৈধতাটিকে

1
আমি জানি এটি কিছুক্ষণ আগে ছিল, তবে আমি মনে করি না যে মার্কিন অঞ্চল কোডগুলি 1 দিয়ে শুরু হতে পারে (123) 456-7890 শীর্ষস্থানীয় 1. কারণ অবৈধ হবে
বোবানাহল্ফ

আরও সম্পূর্ণ সঠিক উত্তরের জন্য দেখুন: stackoverflow.com/a/18626090/561710
জো জনস্টন

ফোন নম্বর পার্স করা শক্ত। গুগল এর জন্য একটি ওপেন সোর্স লিব প্রকাশ করেছে। নিজেকে সাহায্য করুন, লাইবফোনেম্বার ব্যবহার করুন (বা আপনার ভাষায় কাঁটাচামচ)
কোডিড্যাক্ট.কম-এ চলে যাওয়া অ্যালোআইএসডিজি

উত্তর:


212
^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$

নীচের সাথে মেলে

123-456-7890
(123) 456-7890
123 456 7890
123.456.7890
+91 (123) 456-7890

আপনি যদি নন-ইউএস নম্বর ব্যবহারের জন্য কোনও মিল চান না

^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$

আপডেট:
নীচের ব্যবহারকারীর সাইমন ওয়েভার দ্বারা লক্ষ্য করা গেছে, আপনি যদি অপরচরিত সংখ্যার সাথে মিলে যেতে আগ্রহী হন তবে কেবল বিভাজক চরিত্রের শ্রেণিটিকে বিকল্প হিসাবে তৈরি করুন[\s.-]?

^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$

1
আপনি কি মনে করেন যে আপনার প্রথম লাইনের (? \ D {3}) অংশে প্রশ্ন চিহ্নটি প্রয়োজনীয় নয়? আমি মনে করি আমাদের '(' এবং ')' এর মধ্যে শূন্য বা একটি সংখ্যার এক বা একাধিক সংঘটন প্রয়োজন নেই
নূবকোডার

2
?প্রথম বন্ধনী সেখানে প্রযোজ্য ()ডিজিটের না। সম্পূর্ণ সম্পর্কিত রেজেক্স হয় \(?\d{3}\)?\d{3}নির্দিষ্ট করে ()যে এর মধ্যে ( তিনটি ) madeচ্ছিক (দ্বারা ?) এর মধ্যে অবশ্যই তিনটি সংখ্যা থাকবে ।
রবি থাপলিয়াল

6
দ্রষ্টব্য: এটি 1234567890 এর সাথে মেলে না যা সমস্যা হতে পারে বা নাও পারে। আমার জন্য এটি ছিল - সুতরাং আমি ?একে একে [\s.-]
optionচ্ছিক

1
@ সিমন_উইভার আপনার ইনপুটগুলির জন্য আপনাকে ধন্যবাদ। আমি উত্তরে আপনার পর্যবেক্ষণ যুক্ত করেছি।
রবি থাপলিয়াল

3
আপনি যদি এমন একটিটি চান যা @ بابরে উল্লিখিত সমস্যাটিকে এড়িয়ে চলে তবে ব্যবহার করুন ^(\+\d{1,2}\s)?((\(\d{3}\))|(\d{3}))[\s.-]\d{3}[\s.-]\d{4}$। (আমি মূলত কেবলমাত্র রেজিএক্সের সেগমেন্টটি নকল করেছি যা অঞ্চল কোডটি কভার করে এবং পেরেনগুলির সাথে একটি বৈকল্পিকের অনুমতি দেয় এবং একটি ছাড়াই)
শ্রে গুপ্ত

128

এই সমস্যার জন্য বিভিন্ন বৈকল্পিক সম্ভাবনা রয়েছে। আমি পূর্বে এসওতে রেখেছি এমন উত্তরের মতো একটি নিয়মিত প্রকাশ।

^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$

এটি নীচের উদাহরণগুলির সাথে আরও অনেক কিছু মিলবে:

18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
800 555 1234x5678
8005551234 x5678
1    800    555-1234
1----800----555-1234

ফোন নম্বরটি যেভাবেই প্রবেশ করা হোক না কেন, ক্যাপচার গ্রুপগুলি ফোন নম্বর ভাঙ্গতে ব্যবহৃত হতে পারে যাতে আপনি এটিকে আপনার কোডে প্রক্রিয়া করতে পারেন।

  • গোষ্ঠী 1: দেশের কোড (উদা: 1 বা 86)
  • গোষ্ঠী 2: অঞ্চল কোড (উদা: 800)
  • গ্রুপ 3: এক্সচেঞ্জ (উদা: 555)
  • গ্রুপ 4: গ্রাহক সংখ্যা (উদা: 1234)
  • গোষ্ঠী 5: সম্প্রসারণ (উদা: 5678)

আপনি যদি আগ্রহী হন তবে এখানে প্রকাশের বিচ্ছেদের কথা:

^\s*                #Line start, match any whitespaces at the beginning if any.
(?:\+?(\d{1,3}))?   #GROUP 1: The country code. Optional.
[-. (]*             #Allow certain non numeric characters that may appear between the Country Code and the Area Code.
(\d{3})             #GROUP 2: The Area Code. Required.
[-. )]*             #Allow certain non numeric characters that may appear between the Area Code and the Exchange number.
(\d{3})             #GROUP 3: The Exchange number. Required.
[-. ]*              #Allow certain non numeric characters that may appear between the Exchange number and the Subscriber number.
(\d{4})             #Group 4: The Subscriber Number. Required.
(?: *x(\d+))?       #Group 5: The Extension number. Optional.
\s*$                #Match any ending whitespaces if any and the end of string.

অঞ্চল কোডটি alচ্ছিক করতে, অঞ্চল কোডের জন্য কেবল (\ d {3 after) পরে একটি প্রশ্ন চিহ্ন যুক্ত করুন।


7
সেরা উত্তর আইএমএইচও। আমার উদ্দেশ্যটির জন্য, \sশুরুতে এবং শেষের দরকার নেই, কারণ আমি বৈধতার জন্য ব্যবহার করছি এবং ক্ষেত্রটি ইতিমধ্যে ছাঁটাই হয়েছে।
ড্যানিয়েল

1
এখন পর্যন্ত সেরা উত্তর এবং সবচেয়ে সম্পূর্ণ। আমি সত্যিই রেজেক্স ব্রেকডাউন প্রশংসা করি।
ব্রায়ান্ট জ্যাকসন

@ কনডাল আপনি যে ইনপুটটি এটি ব্যর্থ করতে ব্যবহার করছেন তা সম্পর্কে আমি আগ্রহী। এটি দেশের কোডের জন্য 0 দিয়ে আমার পক্ষে ভাল কাজ করছে বলে মনে হচ্ছে।
ফ্রান্সিস গ্যাগন

<ইনপুট টাইপ = "পাঠ্য" নাম = "ফোন_নো" শ্রেণি = "ফর্ম-নিয়ন্ত্রণ" এনজি-প্যাটার্ন = "^ \ এস * (?: \ +? (\ ডি {1,3})))? [-। (] * (\ d {3}) [-।)] * (\ d {3}) [-।] * (\ d {4}) (?: * x (\ d +))? \ s * $ "কেবল -নম্বর এনজি-ম্যাক্সেলেন্থ = "10" />
কনডাল

@ কনডাল দুঃখিত আমি বোঝাতে চাইছি আপনি যে পাঠ্যের সাথে মেলে যাবার চেষ্টা করছেন তা এই রেজেক্সের সাথে ব্যর্থ।
ফ্রান্সিস গাগনন

8

^(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$

এই ফোন নম্বরগুলির সাথে মেলে:

1-718-444-1122
718-444-1122
(718)-444-1122
17184441122
7184441122
718.444.1122
1718.444.1122
1-123-456-7890
1 123-456-7890
1 (123) 456-7890
1 123 456 7890
1.123.456.7890
+91 (123) 456-7890
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
18001234567
1 800 123 4567
1-800-123-4567
+18001234567
+1 800 123 4567
+1 (800) 123 4567
1(800)1234567
+1800 1234567
1.8001234567
1.800.123.4567
+1 (800) 123-4567
18001234567
1 800 123 4567
+1 800 123-4567
+86 800 123 4567
1-800-123-4567
1 (800) 123-4567
(800)123-4567
(800) 123-4567
(800)1234567
800-123-4567
800.123.4567
1231231231
123-1231231
123123-1231
123-123 1231
123 123-1231
123-123-1231
(123)123-1231
(123)123 1231
(123) 123-1231
(123) 123 1231
+99 1234567890
+991234567890
(555) 444-6789
555-444-6789
555.444.6789
555 444 6789
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1.800.555.1234
+1.800.555.1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
(003) 555-1212
(103) 555-1212
(911) 555-1212
18005551234
1 800 555 1234
+86 800-555-1234
1 (800) 555-1234

Regex101.com দেখুন


7

এখানে আমি তৈরি একটি মোটামুটি কমপ্যাক্ট।

Search: \+?1?\s*\(?-*\.*(\d{3})\)?\.*-*\s*(\d{3})\.*-*\s*(\d{4})$

Replace: +1 \($1\) $2-$3

নিম্নলিখিত ব্যবহারের মামলার বিরুদ্ধে পরীক্ষিত।

18001234567
1 800 123 4567
1-800-123-4567
+18001234567
+1 800 123 4567
+1 (800) 123 4567
1(800)1234567
+1800 1234567
1.8001234567
1.800.123.4567
1--800--123--4567
+1 (800) 123-4567

এটি (800 444-4444
জ্যাক

6

Jsfiddle উপর উল্লিখিত সমাধানগুলি ব্যবহার করে একটি উদাহরণ যুক্ত করা। আমি আমার ক্লায়েন্টের প্রয়োজন অনুযায়ী কোডটি কিছুটা পরিবর্তন করেছি ified আশা করি এটিও কাউকে সহায়তা করবে।

/^\s*(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *[x/#]{1}(\d+))?\s*$/

এখানে উদাহরণ দেখুন


4

পাকিস্তানি ব্যবহারকারীদের জন্য এটি ব্যবহার করে দেখুন .আমি এটি তৈরি করেছি মোটামুটি কমপ্যাক্ট।

((\+92)|0)[.\- ]?[0-9][.\- ]?[0-9][.\- ]?[0-9]

নিম্নলিখিত ব্যবহারের মামলার বিরুদ্ধে পরীক্ষিত।

+92 -345 -123 -4567
+92 333 123 4567
+92 300 123 4567
+92 321 123 -4567
+92 345 - 540 - 5883

4

আমি যে ফোন নম্বর ব্যবহার করি সেগুলি: /^[+]?(\d{1,2})?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/

কভার:

  • 18001234567
  • 1 800 123 4567
  • +1 800 123-4567
  • +86 800 123 4567
  • 1-800-123-4567
  • 1 (800) 123-4567
  • (800)123-4567
  • (800) 123-4567
  • (800) 1234567
  • 800-123-4567
  • 800.123.4567

2

1, 3 এবং 4 এর জন্য প্রকাশগুলি একইরকম, তাই আপনি ব্যবহার করতে পারেন:

^([1-9]\d{2})([- .])(\d{3})$2(\d{4})$

মনে রাখবেন, ব্যবহৃত ভাষা এবং ব্র্যান্ডের উপর নির্ভর করে আপনার ব্যবহারের \2পরিবর্তে লাগাতে $2হতে পারে বা এ জাতীয় মিলটি মোটেও সমর্থনযোগ্য নয়।

^(regex for 1,3,4|regex for 2)$এটিকে দুর্বোধ্য, আনাড়ি এবং সংখ্যার অংশগুলি বের করে আনা শক্ত করে তোলে from

অঞ্চল কোড হিসাবে, আপনি (\+\d)?একক-অঙ্কের অঞ্চল কোড ক্যাপচার শুরুতে যুক্ত করতে পারেন (দুঃখিত, আমি আপনার অঞ্চল কোডগুলির ফর্ম্যাট জানি না)।


2

এ কেমন?

^(\+?[01])?[-.\s]?\(?[1-9]\d{2}\)?[-.\s]?\d{3}[-.\s]?\d{4}

সম্পাদনা: আমি () একটি সম্পর্কে ভুলে গেছি। সম্পাদনা 2: প্রথম 3 অঙ্কের অংশটি ভুল হয়েছে।


.চরিত্রের ক্লাসে যখন বিন্দু থেকে বাঁচার দরকার নেই , [-\.\s]আসলে এটি হওয়া উচিত [-.\s], কারণ আমরা কোনও ব্যাকস্ল্যাশ মেলাতে চাই না।
বেদরান Šego

এটি কি ব্যাকস্ল্যাশের সাথে মিলবে? আমি ভেবেছিলাম এটি প্রয়োজনীয় নাও হতে পারে তবে আমি 100% নিশ্চিত ছিলাম না।
ক্রিমসন_পেনগুইন

তুমি ঠিক. আমি কেবল এটি চেষ্টা করে দেখেছি (এর আগে আমার কখনই ব্যাকস্ল্যাশ দরকার হয়নি) এবং [\.]এবং [.]উভয়ই কেবল বিন্দুর সাথে মেলে, যখন [\\.]বিন্দু এবং ব্যাকস্ল্যাশ উভয়ই মিলে। আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ।
বেদরান Šego

রেজেক্সেস সম্পর্কে আমার মতামতটি হ'ল, আপনি যদি কাউকে একটি রেজেক্স দিচ্ছেন, সর্বদা এটির সাথে একটি ব্যাখ্যা দিয়ে যান, বা রেজেক্স মূল্যহীন। শুধুমাত্র আমার অভিমত.
জন রেড

2

@ রবির উত্তর দিয়ে শুরু করে, আমি এনপিএ (অঞ্চল) কোডের জন্য কিছু বৈধকরণের বিধিও প্রয়োগ করেছি ।

নির্দিষ্টভাবে:

  • এটি একটি 2 (বা উচ্চতর) দিয়ে শুরু করা উচিত
  • এটিতে দ্বিতীয় এবং তৃতীয় সংখ্যা (এন 11) হিসাবে "11" থাকতে পারে না।

সংরক্ষিত ব্লকগুলি (N9X, 37X, 96X) এবং 555 সহ আরও কয়েকটি বিধিনিষেধ রয়েছে, তবে আমি সেগুলি ছেড়ে দিয়েছি, বিশেষত সংরক্ষিত ব্লকগুলি ভবিষ্যতের ব্যবহার দেখতে পারে এবং 555 পরীক্ষার জন্য দরকারী।

এটিই আমি নিয়ে এসেছি:

^((\+\d{1,2}|1)[\s.-]?)?\(?[2-9](?!11)\d{2}\)?[\s.-]?\d{3}[\s.-]?\d{4}$

পর্যায়ক্রমে, আপনি যদি ফাঁকা মানগুলি (যদি ক্ষেত্রের প্রয়োজন না হয়) মেলাতে চান তবে আপনি এটি ব্যবহার করতে পারেন:

(^((\+\d{1,2}|1)[\s.-]?)?\(?[2-9](?!11)\d{2}\)?[\s.-]?\d{3}[\s.-]?\d{4}$|^$)

বৈধ সংখ্যার জন্য আমার পরীক্ষার কেসগুলি (@ ফ্রেঞ্চিসের উত্তর থেকে অনেকগুলি) হ'ল

18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1.800.555.1234
+1.800.555.1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234

আমার অবৈধ পরীক্ষার কেসগুলির মধ্যে রয়েছে:

(003) 555-1212     // Area code starts with 0
(103) 555-1212     // Area code starts with 1
(911) 555-1212     // Area code ends with 11
180055512345       // Too many digits
1 800 5555 1234    // Prefix code too long
+1 800 555x1234    // Invalid delimiter
+867 800 555 1234  // Country code too long
1-800-555-1234p    // Invalid character
1 (800)  555-1234  // Too many spaces
800x555x1234       // Invalid delimiter
86 800 555 1212    // Non-NA country code doesn't have +

আমার নিয়মিত প্রকাশে অঙ্কের গোষ্ঠীগুলি বের করার জন্য গ্রুপিং অন্তর্ভুক্ত নয় তবে সেগুলি অন্তর্ভুক্ত করার জন্য এটি পরিবর্তন করা যেতে পারে।


2

সম্ভবত সবচেয়ে সহজ অন্য কয়েকজনের সাথে তুলনা করুন।

\(?\d+\)?[-.\s]?\d+[-.\s]?\d+

এটি নিম্নলিখিতগুলির সাথে মেলে:

(555) 444-6789

555-444-6789

555.444.6789

555 444 6789


পারফেক্ট এক ... ধন্যবাদ (y)
সুশীল শর্মা

2

এই কোডটি কোনও মার্কিন বা কানাডিয়ান ফোন নম্বরটির সাথে মিলবে এবং এটি একটি বৈধ অঞ্চল কোড এবং বিনিময়ও নিশ্চিত করবে:

^((\+1)?[\s-]?)?\(?[2-9]\d\d\)?[\s-]?[2-9]\d\d[\s-]?\d\d\d\d

Regex101.com এ পরীক্ষা করুন


2

নিয়মিত 10 ডিজিটের ফোন নম্বর প্লাস optionচ্ছিক আন্তর্জাতিক কোড (1 থেকে 3 ডিজিট) এবং alচ্ছিক এক্সটেনশন নম্বর (কোনও সংখ্যার সংখ্যার) বৈধতা দেওয়ার জন্য রেজেক্স প্যাটার :

/(\+\d{1,3}\s?)?((\(\d{3}\)\s?)|(\d{3})(\s|-?))(\d{3}(\s|-?))(\d{4})(\s?(([E|e]xt[:|.|]?)|x|X)(\s?\d+))?/g

ডেমো: https://www.regextester.com/103299

বৈধ এন্ট্রি:

/* Full number */
+999 (999) 999-9999 Ext. 99999

/* Regular local phone number (XXX) XXX-XXXX */
1231231231
123-1231231
123123-1231
123-123 1231
123 123-1231
123-123-1231
(123)123-1231
(123)123 1231
(123) 123-1231
(123) 123 1231

/* International codes +XXX (XXX) XXX-XXXX */
+99 1234567890
+991234567890

/* Extensions (XXX) XXX-XXXX Ext. XXX... */
1234567890 Ext 1123123
1234567890Ext 1123123
1234567890 Ext1123123
1234567890Ext1123123

1234567890 Ext: 1123123
1234567890Ext: 1123123
1234567890 Ext:1123123
1234567890Ext:1123123

1234567890 Ext. 1123123
1234567890Ext. 1123123
1234567890 Ext.1123123
1234567890Ext.1123123

1234567890 ext 1123123
1234567890ext 1123123
1234567890 ext1123123
1234567890ext1123123

1234567890 ext: 1123123
1234567890ext: 1123123
1234567890 ext:1123123
1234567890ext:1123123

1234567890 X 1123123
1234567890X1123123
1234567890X 1123123
1234567890 X1123123
1234567890 x 1123123
1234567890x1123123
1234567890 x1123123
1234567890x 1123123

1

আমি এই নিয়মিত প্রকাশটি 10 ​​টি সংখ্যার যোগাযোগ নম্বরের জন্য আমার পক্ষে সবচেয়ে দরকারী বলে মনে করি:

^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[789]\d{9}$

তথ্যসূত্র : https://regex101.com/r/QeQewP/1

ব্যাখ্যা:

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


আপনি এই ব্যাখ্যাটি উত্পন্ন করতে কোনও সরঞ্জাম ব্যবহার করেছেন? শেয়ার করুন! ধন্যবাদ
অজানা

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

@ অজ্ঞাত এখানে একটি লিঙ্ক যা এই পোস্টের মতো একটি চিত্র তৈরি করে। অমিতেশের রেজেক্স স্ট্রিংটি ইতিমধ্যে আটকানো হয়েছে its এর ফলাফলগুলি পরীক্ষা করার জন্য আপনি ফোন নম্বর প্রবেশ করতে পারেন: regex101.com/r/QeQewP/1
শেরিলহোমান 11


0

এটি একটি আরও বিস্তৃত সংস্করণ যা আমি যতটা ভাবতে পারি তার সাথে মিলবে ততই আপনাকে দেশ, অঞ্চল, প্রথম এবং শেষের জন্য গ্রুপ মিলবে give

(?<number>(\+?(?<country>(\d{1,3}))(\s|-|\.)?)?(\(?(?<region>(\d{3}))\)?(\s|-|\.)?)((?<first>(\d{3}))(\s|-|\.)?)((?<last>(\d{4}))))

0

"+" দিয়ে একাধিক সংখ্যার কী এবং সেগুলি "" "দিয়ে পৃথক করুন; "," "-" বা "" অক্ষর?


0

আমি দিয়ে শেষ

const regexBase = '(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})?[-. )]*(\\d{3})[-. ]*(\\d{4,5})(?: *x(\\d+))?'; const phoneRegex = new RegExp('\\s*' + regexBase + '\\s*', 'g');

উদাহরণস্বরূপ, এটি ডাচ সংখ্যাগুলির মতো জিনিসগুলির জন্য অনুমতি দেওয়া ছিল

+358 300 20200


0

রেগেক্সের উপরে একটি সামান্য পরিবর্তন রয়েছে @Francis Gagnon.

উদ্দেশ্য: যে কোনও সম্ভাব্য প্যাটার্ন সনাক্ত করতে কোনও ব্যবহারকারী তাদের মার্কিন ফোন নম্বর ভাগ করতে পারে


সংস্করণ 1:

^\s*(?:\+?(\d{1,3}))?[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d[\W\D\s]*?\d)(?: *x(\d+))?\s*$

এখানে এটি পরীক্ষা করুন কোডপেন: https://codepen.io/kiranbuttarai/pen/NWKMXQO

রেজেক্সের ব্যাখ্যা: https://regexr.com/4kt5j


সংস্করণ 2:

\s*(?:\+?(\d{1,3}))?[\W\D\s]^|()*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d)[\W\D\s]*(\d[\W\D\s]*?\d[\D\W\s]*?\d[\W\D\s]*?\d)(?: *x(\d+))?\s*$

এটিতে কী রয়েছে: পরীক্ষার কেসগুলি স্ট্রিংয়ের একটি অংশ হতে পারে। এক সংস্করণে পরীক্ষার কেসগুলি কাজ করার জন্য একটি লাইনের শুরু হওয়া উচিত।

কোডপেন: https://codepen.io/kiranbuttarai/pen/GRKGNGG

রেজেক্সের ব্যাখ্যা: https://regexr.com/4kt9n


যদি আপনি এমন একটি প্যাটার্ন খুঁজে পেতে পারেন যা ব্যর্থ হয় তবে দয়া করে মন্তব্য করুন আমি এটি ঠিক করব।

পরীক্ষার মামলা: পাস

8 0   0  4  4  4  5   55 5
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
800 555 1234x5678
8005551234 x5678
1    800    555-1234
1----800----555-1234
800 (555) 1234
800(555)1234
8 0 0 5 5 5 1 2 3 4
8.0.0.5.5.5.1.2.3.4
8-0-0-5-5-5-1-2-3-4
(8)005551234
(80)05551234
8(00)5551234
8@0@0@5551234
8/0/0/5/5/5/1/2/3/4
8*0*0*5*5*5*1*2*3*4
8:0:0:5:5:5:1:2:3:4
8,0,0,5,5,5,1,2,3,4
800,555,1234
800:555:1234
1-718-444-1122
718-444-1122
(718)-444-1122
17184441122
7184441122
718.444.1122
1718.444.1122
1-123-456-7890
1 123-456-7890
1 (123) 456-7890
1 123 456 7890
1.123.456.7890
+91 (123) 456-7890
18005551234
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
18001234567
1 800 123 4567
1-800-123-4567
+18001234567
+1 800 123 4567
+1 (800) 123 4567
1(800)1234567
+1800 1234567
1.8001234567
1.800.123.4567
+1 (800) 123-4567
18001234567
1 800 123 4567
+1 800 123-4567
+86 800 123 4567
1-800-123-4567
1 (800) 123-4567
(800)123-4567
(800) 123-4567
(800)1234567
800-123-4567
800.123.4567
1231231231
123-1231231
123123-1231
123-123 1231
123 123-1231
123-123-1231
(123)123-1231
(123) 123-1231
(123) 123 1231
+99 1234567890
+991234567890
(555) 444-6789
555-444-6789
555.444.6789
555 444 6789
1 800 555 1234
+1 800 555-1234
+86 800 555 1234
1-800-555-1234
1.800.555.1234
+1.800.555.1234
1 (800) 555-1234
(800)555-1234
(800) 555-1234
(800)5551234
800-555-1234
800.555.1234
(003) 555-1212
(103) 555-1212
(911) 555-1212
18005551234
1 800 555 1234
+86 800-555-1234
1 (800) 555-1234

+86, +99 ইত্যাদি অবশ্যই মার্কিন ফোন নম্বর নয়। আপনার অন্যান্য পরীক্ষার কয়েকটি ক্ষেত্রে অন্যান্য কারণে সন্দেহজনক দেখা যায় look
ট্রিপলি

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

0

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

((?:\s|^)(?:\+\d{1,3}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4})(?:\b)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.