কোন নিয়মিত প্রকাশটি বৈধ আন্তর্জাতিক ফোন নম্বরগুলির সাথে মিলবে?


113

ফোন নম্বরটি ডায়াল করার চেষ্টা করার আগে আমাকে ফোন নম্বরটি বৈধ কিনা তা নির্ধারণ করতে হবে। ফোন কল বিশ্বের যে কোনও জায়গায় যেতে পারে।

কোন নিয়মিত প্রকাশটি বৈধ আন্তর্জাতিক ফোন নম্বরগুলির সাথে মিলবে?


পরিষেবা নম্বর বাদে কোনও রেইজেক্স কীভাবে ত্রুটি পরিচালনা করে? কেবল কল করার চেষ্টা করুন এবং অন্য ত্রুটিগুলির মতো অবৈধ-নম্বরটিকে হ্যান্ডেল করুন।

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

1
এলএল @ প্যাক্সিয়াব্লো .... আমি অনুমান করি 1-800-CALL-HELP আপনার RegExp পরীক্ষাটি পাস করবে ... lol
বুহাকে সিন্ধি

1
এই প্রশ্নে পরিষ্কার নয় এমন কিছু হ'ল যদি মার্কিন যুক্তরাষ্ট্রে বা বিশ্বের যে কোনও দেশ থেকে কল করা সংখ্যাগুলি যদি বৈধ হতে হয় তবে নীচের বেশিরভাগ সমাধানগুলি কিছু বৈধ সংখ্যা বৈধ করে না (যেমন 0030 210 12312312 - একটি বৈধ যে কোনও ইইউ দেশ থেকে গ্রীক নম্বর কল করা হয়েছে)
জেরোক্সয়েড

1
@ জোহান্না আমি একটি পয়েন্টের সাথে একমত, তবে অন্যদিকে, ইউএক্স দৃষ্টিকোণ থেকে আপনি কি মনে করেন না যে কোনও ব্যবহারকারী যদি একটি 00 এক্সএক্স ... এক্স নম্বর দেয় তবে পরীক্ষাটি পাস করা উচিত? এমন কিছু ক্ষেত্রে রয়েছে যেখানে ব্যবহারকারীরা (যেমন বয়স্ক ব্যক্তিরা) এমনকি + কী কী এবং কীভাবে এটি একটি সংখ্যক / ফোন কীপ্যাডে টাইপ করবেন তা জানেন না। এছাড়াও আমি এখনও তর্ক করতে পারি যে 00XXX একটি বৈধ আন্তর্জাতিক সংখ্যা (যেমন একটি ব্যবহারকারীর প্রসঙ্গে) যেখানে + এর পরিবর্তে প্রস্থান কোড ব্যবহার করা হত।
জেরক্সয়েড

উত্তর:


96
\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|
2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|
4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$

একটি জেনেরিক আন্তর্জাতিক ফোন নম্বর মিলানোর জন্য সঠিক ফর্ম্যাট। আমি মার্কিন স্থল লাইন কেন্দ্রিক আন্তর্জাতিক অ্যাক্সেস কোড 011 এর পরিবর্তে '+' এর মানক আন্তর্জাতিক অ্যাক্সেস কোড সনাক্তকারী দিয়ে এটিকে বাধ্যতামূলক করে তুলেছি। আমি জাতীয় সংখ্যার জন্য সর্বনিম্ন পরিবর্তন করে কমপক্ষে একটি ডিজিটও করেছি।

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

নোট করুন যে এটি জাতীয় নম্বর পরিকল্পনার নিয়মগুলিকে বিবেচনায় রাখে না - বিশেষত, এটি এমন জাতীয় শূন্যস্থানগুলি এমন জায়গাগুলিতে শূন্য এবং তাদেরকে অনুমতি দেয় এবং কিছু দেশের জাতীয় সংখ্যা পরিকল্পনার চেয়ে বড় দৈর্ঘ্যকেও মঞ্জুরি দেয় (যেমন, মার্কিন)।


5
আমার কাছে বোধগম্য মনে হয়। আমি এটি ব্যবহার করতে যাচ্ছি
স্প্রেনিয়ার্থস

17
এটি বৈধ নয়। ইউরোপীয় ফোন নম্বর শুরুতে ++ ছাড়াই ডাবল 0 দিয়ে শুরু করতে পারে। সুতরাং একটি ফোন নম্বর যেমন: +44 8984 1234 (যুক্তরাজ্য) 0044 8984 1234 লিখিত থাকলে এটি পুরোপুরি বৈধ হয় যা এই রেজিপ্সপ (এবং অন্যান্য উত্তরগুলিতেও) সমর্থন করে না।
জেরক্সয়েড

4
@ ফেজফক্সের উন্নতি (?) এবং দৈর্ঘ্য অনুকূলিতকরণের সাথে ^\+((?:9[679]|8[035789]|6[789]|5[90]|42|3[578]|2[1-689])|9[0-58]|8[1246]|6[0-6]|5[1-8]|4[013-9]|3[0-469]|2[70]|7|1)(?:\W*\d){0,13}\d$
একত্রিত

1
+1 টি। ইউএক্স দৃষ্টিকোণ থেকে, হ্যাঁ, এটি 00সামনে অনুমতি দেওয়া বোধগম্য হতে পারে । দৃশ্য উন্নয়ন এবং রক্ষণাবেক্ষণ বিন্দু থেকে, আমি এটা পুরোপুরি জরিমানা সমস্ত নম্বর জোরদার করা হচ্ছে দিয়ে শুরু করতে বলতে চাই +বা এমনকি প্রতিস্থাপন 00একটি সঙ্গে +প্রতিটি সময় আপনি এটি পেতে - বিশেষ করে দেওয়া যে অধিকাংশ লোক সচেতন +ফরম্যাট (যা সর্বাধিক আন্তর্জাতিক ফোন ইনপুট ক্ষেত্রে যাইহোক প্রয়োজন)। প্লাস এটি একটি ওয়ান-লাইন ফিক্স এবং আরও পাঠযোগ্য way এই পদ্ধতির সাথে এটিও নিশ্চিত হবে যে সমস্ত ফোন নম্বর একই ফর্ম্যাটে রয়েছে এবং আপনার বৈধতাটিকে অনেক কম ত্রুটি-প্রবণ করে তোলে, ফলে পুরো জিনিসটি আরও রক্ষণাবেক্ষণযোগ্য করে তোলে।
মিলোস্মন্স

1
এবং, প্রি-EDGE (প্লেইন জিএসএম) এসএমএসের "পুরানো" দিনের মধ্যে, 00বার্তাটি সঠিকভাবে প্রেরণ করে না, যেখানে শুরু করে +সর্বদা আন্তর্জাতিকভাবে কাজ করে। আমরা পাগল হয়ে যেতে পারি এবং এটি আরও জটিল করে তুলতে পারি, তবে কখনও কখনও আমাদের জীবন সহজ করার জন্য কয়েকটি বাধা ফেলে দেওয়া সম্ভব / মূল্যবান :)
milosmns

66

সমস্ত দেশের কোডগুলি ITU দ্বারা সংজ্ঞায়িত করা হয়। নিম্নলিখিত রেজেক্সটি ITU-T E.164 এবং আনেক্স থেকে ITU অপারেশনাল বুলেটিন নং 930 - 15.IV.2009 উপর ভিত্তি করে । এতে ভবিষ্যতের ব্যবহারের জন্য সংরক্ষিত সমস্ত বর্তমান দেশের কোড এবং কোড রয়েছে। যদিও এটি কিছুটা ছোট করা যেতে পারে, আমি প্রতিটি কোডকে স্বতন্ত্রভাবে অন্তর্ভুক্ত করার সিদ্ধান্ত নিয়েছি।

এটি মার্কিন যুক্তরাষ্ট্র থেকে আগত কলগুলির জন্য। অন্যান্য দেশগুলির জন্য, আন্তর্জাতিক অ্যাক্সেস কোড (রেজেক্সের শুরুতে 011) এর পরিবর্তে সেই দেশের ডায়ালিং পরিকল্পনার জন্য যা উপযুক্ত তা প্রতিস্থাপন করুন ।

এছাড়াও, নোট করুন আইটিইউ E.164 সম্পূর্ণ আন্তর্জাতিক টেলিফোন নম্বরটির সর্বাধিক দৈর্ঘ্য 15 ডিজিটে সংজ্ঞায়িত করে। এর অর্থ তিনটি দেশীয় কোডের ফলাফল পর্যন্ত 12 টি অতিরিক্ত সংখ্যার ফলাফল এবং 1 সংখ্যার দেশ কোডে 14 টি অতিরিক্ত সংখ্যা থাকতে পারে digit অত: পর

[0-9]{0,14}$

রেজেক্সের শেষ।

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

283 | 282 | 281 | 280 | 269 | 268 | 267 | 266 | 265 | 264 | 263 | 262 | 261 | 260 | 259 | 258 | 257 | 256 | 255 | 254 | 253 | 252 | 251 | 250 | 249 | 248 | 247 | 246 | 245 | 244 | 243 | 242 | 241 | 240 | 239 | 238 | 237 | 236 | 235 | 234 | 233 | 232 | 231 | 230 | 229 | 228 | 227 | 226 | 225 | 224 | 223 | 222 | 221 | 220 | 219 | 218 | 217 | 216 | 215 | 214 | 213 | 212 | 211 | 210 | 98 | 95 | 94 | 93 | 92 | 91 | 90 | 86 | 84 | 82 | 81 | 66 | 65 | 64 | 63 | 62 | 61 | 60 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 41 | 40 | 39 | 36 | 34 | 33 | 32 | 31 | 30 | 27 | 20 | 7 | 1) [0-9] {0, 14}


12
প্রায় ঠিকই এটি ছিল ... "011" কোনও আন্তর্জাতিক কোডের অংশ নয়। আন্তর্জাতিক কল করার জন্য কেবল মার্কিন যুক্তরাষ্ট্রে ডায়াল করা দরকার। আপনি যেখান থেকে ডায়াল করেছেন তার উপর নির্ভর করে সেই উপসর্গটি বদলে যাবে ... যাতে উপসর্গটি সংখ্যার অংশ নয়।
গ্যাব্রিয়েল মাগানা

3
@gmagana - আমি আমার উত্তর উল্লেখ যে (অনুচ্ছেদ 2)
Abtin Forouzandeh

1
আমার বক্তব্যটি এটি ফোন নম্বরটির অংশ নয়। এটি "1" মার্কিন জাতীয় দূরত্বের ডায়ালিং উপসর্গটি ফোন নম্বরটির অংশ বলে দেওয়ার মতো।
গ্যাব্রিয়েল মাগানা

1
@gmagana - আপনি ঠিক বলেছেন যে এটি ফোন নম্বরটির অংশ নয়, কল করার জন্য প্রযুক্তিগতভাবে এটি প্রয়োজন।
আবতিন ফোরজান্ডেহ

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

32

এটি আরও একটি অপ্টিমাইজেশন।

\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|
2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|
4[987654310]|3[9643210]|2[70]|7|1)
\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*(\d{1,2})$

(i) বৈধ আন্তর্জাতিক উপসর্গের জন্য অনুমতি দেয়
(ii) 9 বা 10 অঙ্কের পরে, কোনও ধরণের বা ডিলিমিটার স্থাপন (শেষ দুটি অঙ্কের ব্যতীত)

এটি মিলবে:
+ 1-234-567-8901
+ 61-234-567-89-01
+ 46-234 5678901
+1 (234) 56 89 901
+1 (234)
56-89 901 +46.234.567.8901
+1 / 234/567/8901


আমি জানি এটি একটি পুরানো উত্তর, তবে আমেরিকান সংখ্যার জন্য 1 টি optionচ্ছিক করার কোনও বিকল্প আছে কি?
অ্যাডাম ফ্রেটিনো

আপনি যা করতে চান তা হ'ল (i) "+" makeচ্ছিক এবং (ii) আন্তর্জাতিক কোড .চ্ছিক। তাহলে "রাখব?" + পরে এবং প্রথম বন্ধনী বন্ধনী পরে।
ফেজফক্স

@ মনোসপ্যাসিজিনিস হ্যাঁ, "9 বা 10 সংখ্যার পরে" নির্দিষ্ট করা হয়েছে এটি সাইপ্রাসে আপনি 8 ব্যবহার করেন তা প্রদর্শিত হবে, তাই কেবল একবার \ d \ W * এর উদাহরণ সরিয়ে শেষ ক্রমটি সামঞ্জস্য করুন এবং শেষ
প্রকাশটি করুন

22

আপনি গুগল থেকে লাইব্রেরি লাইফফোনেম্বার ব্যবহার করতে পারেন ।

PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
String decodedNumber = null;
PhoneNumber number;
    try {
        number = phoneNumberUtil.parse(encodedHeader, null);
        decodedNumber = phoneNumberUtil.format(number, PhoneNumberFormat.E164);
    } catch (NumberParseException e) {
        e.printStackTrace();
    }

2
এটি একটি ভাল সমাধান হতে পারে তবে কেবল ফোন নম্বরগুলি পরীক্ষা করার জন্য, এই লাইব্রেরিটি ব্যবহারের আগে আপনাকে প্রচুর পরিমাণে জেএস আমদানি করতে হবে ... কারণ লাইবফোনেম্বার.জেসের ক্লোজার লাইব্রেরি দরকার ... এটি হালকা সমাধান নয়: /
জে বিজমাই

11

এটি আন্তর্জাতিক সংখ্যার জন্য কাজ করবে;

সি #:

@"^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$"

জাতীয়:

/^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/

11

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

/([0-9\s\-]{7,})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/

সুবিধাগুলি: + বা 011 সূচনাগুলি স্বীকৃতি দেয়, এটি প্রয়োজন হিসাবে দীর্ঘতর হতে দেয় এবং অনেকগুলি এক্সটেনশন কনভেনশন পরিচালনা করে। (# X, EXT, এক্সটেনশন)


এটি বেশিরভাগ আন্তর্জাতিক ফোন নম্বর ফর্ম্যাটের কাছে আসে।
ফিয়েল

9

আপনার রেইগেক্সের একটি "অনুকূলিত" সংস্করণ এখানে রয়েছে:

^011(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|
2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|
4[987654310]|3[9643210]|2[70]|7|1)\d{0,14}$

আপনি প্রতিস্থাপন করতে পারেন \dসঙ্গে গুলি [0-9]যদি আপনার Regex সিনট্যাক্স সমর্থন করে না \d



6

@ এরিকের নিয়মিত অভিব্যক্তি পরিবর্তিত - সমস্ত দেশের কোডের একটি তালিকা যুক্ত করেছে (এগুলি xxxdepy @ Github থেকে পেয়েছে I আমি আশা করি আপনি এটি সহায়ক পাবেন:

/(\+|00)(297|93|244|1264|358|355|376|971|54|374|1684|1268|61|43|994|257|32|229|226|880|359|973|1242|387|590|375|501|1441|591|55|1246|673|975|267|236|1|61|41|56|86|225|237|243|242|682|57|269|238|506|53|5999|61|1345|357|420|49|253|1767|45|1809|1829|1849|213|593|20|291|212|34|372|251|358|679|500|33|298|691|241|44|995|44|233|350|224|590|220|245|240|30|1473|299|502|594|1671|592|852|504|385|509|36|62|44|91|246|353|98|964|354|972|39|1876|44|962|81|76|77|254|996|855|686|1869|82|383|965|856|961|231|218|1758|423|94|266|370|352|371|853|590|212|377|373|261|960|52|692|389|223|356|95|382|976|1670|258|222|1664|596|230|265|60|262|264|687|227|672|234|505|683|31|47|977|674|64|968|92|507|64|51|63|680|675|48|1787|1939|850|351|595|970|689|974|262|40|7|250|966|249|221|65|500|4779|677|232|503|378|252|508|381|211|239|597|421|386|46|268|1721|248|963|1649|235|228|66|992|690|993|670|676|1868|216|90|688|886|255|256|380|598|1|998|3906698|379|1784|58|1284|1340|84|678|681|685|967|27|260|263)(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\d{4,20}$/

একটি যাদুমন্ত্র মত কাজ করে. ডাচ ফোন নম্বরগুলির জন্যও। ধন্যবাদ!
mauvm

2

এটি করার বিভিন্ন উপায়ের স্পষ্টরূপে অনেকগুলি উপায় রয়েছে, যতক্ষণ না এ পর্যন্ত দেওয়া বিভিন্ন উত্তর দ্বারা প্রমাণিত হয়েছে তবে আমি এখানে আমার 0.02 ডলার মূল্যের নিক্ষেপ করব এবং নীচের রেজেক্সটি সরবরাহ করব যা উপরের প্রায় সমস্তটির চেয়ে কিছুটা নিবিড় is , তবে বেশিরভাগের চেয়ে আরও সম্পূর্ণ। এটিতে দেশের কোডটি $ 1 এবং স্থানীয় নম্বরটি 2 ডলারে রেখে দেওয়ার চমৎকার পার্শ্ব-প্রতিক্রিয়া রয়েছে।

^ \ + + (? = \ ঘ {5,15} $) (1 | 2 [078] | 3 [0-469] | 4 [013-9] | 5 [1-8] | 6 [0-6] | 7 | 8 [1-469] | 9 [0-58] | [2-9] ..) (\ D +) $


2

এই দুর্দান্ত উত্তরের বিষয়ে কোনও সমালোচনা নেই আমি কেবল আমাদের প্রশাসক সামগ্রী সামগ্রী নির্মাতাদের জন্য আমি যে সহজ সমাধানটি ব্যবহার করি তা উপস্থাপন করতে চাই:

^(\+|00)[1-9][0-9 \-\(\)\.]{7,}$

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


1

ইওরোপীয় সংখ্যার জন্য একটি সহজ সংস্করণ, এটি 0034617393211 এর মতো সংখ্যার সাথে মেলে তবে এটি 004401484172842 হিসাবে দীর্ঘ।

^0{2}[0-9]{11,}

আশা করি এটা সাহায্য করবে :·)


1
public static boolean validateInternationalPhoneNumberFormat(String phone) {
    StringBuilder sb = new StringBuilder(200);

    // Country code
    sb.append("^(\\+{1}[\\d]{1,3})?");

    // Area code, with or without parentheses
    sb.append("([\\s])?(([\\(]{1}[\\d]{2,3}[\\)]{1}[\\s]?)|([\\d]{2,3}[\\s]?))?");

    // Phone number separator can be "-", "." or " "

    // Minimum of 5 digits (for fixed line phones in Solomon Islands)
    sb.append("\\d[\\-\\.\\s]?\\d[\\-\\.\\s]?\\d[\\-\\.\\s]?\\d[\\-\\.\\s]?\\d[\\-\\.\\s]?");

    // 4 more optional digits
    sb.append("\\d?[\\-\\.\\s]?\\d?[\\-\\.\\s]?\\d?[\\-\\.\\s]?\\d?$");

    return Pattern.compile(sb.toString()).matcher(phone).find();
}

1
যদিও এই কোড স্নিপেট প্রশ্নের উত্তর দিতে পারে, এটি কীভাবে বা কেন তা ব্যাখ্যা করার জন্য কোনও প্রসঙ্গ সরবরাহ করে না। আপনার উত্তরটি ব্যাখ্যা করতে একটি বা দুটি বাক্য যুক্ত করার বিষয়টি বিবেচনা করুন।
31:38

1

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

  1. আসল সংখ্যাটি কেবল 10 সংখ্যার হওয়া উচিত।
  2. মার্কিন সংখ্যার জন্য ক্ষেত্রের কোডটি বন্ধনী () দিয়ে ঘিরে থাকতে পারে।
  3. দেশের কোডটি 1 থেকে 3 ডিজিট দীর্ঘ হতে পারে। Ptionচ্ছিকভাবে একটি + চিহ্ন দ্বারা পূর্বে হতে পারে।
  4. দেশের কোড, অঞ্চল কোড এবং বাকী সংখ্যার মধ্যে ড্যাশ, স্পেস, বিন্দু বা কোনও ফাঁকা স্থান থাকতে পারে।
  5. একটি বৈধ ফোন নম্বর সমস্ত শূন্য হতে পারে না।

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

ব্যাখ্যা:

    ^ - start of expression  
    (?!\b(0)\1+\b) - (?!)Negative Look ahead. \b - word boundary around a '0' character. \1 backtrack to previous capturing group (zero). Basically don't match all zeros.  
    (\+?\d{1,3}[. -]?)? - '\+?' plus sign before country code is optional.\d{1,3} - country code can be 1 to 3 digits long. '[. -]?' - spaces,dots and dashes are optional. The last question mark is to make country code optional.  
    \(?\d{3}\)? - '\)?' is to make parentheses optional. \d{3} - match 3 digit area code.  
    ([. -]?) - optional space, dash or dot
    $ - end of expression

আরও উদাহরণ এবং ব্যাখ্যা - https://regex101.com/r/hTH8Ct/2/


1

আমি এটি নীচে ব্যবহার করেছি:

^(\+|00)[0-9]{1,3}[0-9]{4,14}(?:x.+)?$

+ CCC.NNNNNNNNNNxEEEE বা 00CCC.NNNNNNNNNNNEEEE ফর্ম্যাট

আন্তর্জাতিক কল করার জন্য ফোন নম্বর অবশ্যই '+' বা '00' দিয়ে শুরু করা উচিত। যেখানে সি হল ১-৩ ডিজিটের দেশ কোড,

এন 14 টি সংখ্যা পর্যন্ত

এবং E হ'ল (alচ্ছিক) এক্সটেনশন।

দেশের কোড অনুসরণ করে শীর্ষস্থানীয় প্লাস চিহ্ন এবং ডট প্রয়োজন। আক্ষরিক "x" অক্ষরটি কেবল তখনই প্রয়োজন যখন কোনও এক্সটেনশন সরবরাহ করা হয়।



0

আন্তর্জাতিক নম্বর দেওয়ার পরিকল্পনাটি আইটিইউয়ের উপর ভিত্তি করে E.164 এর সংখ্যায়ন পরিকল্পনার । আমার ধারণা এটি আপনার নিয়মিত অভিব্যক্তির সূচনালগ্ন।

আমি ITU E.164 সংখ্যার উপর ভিত্তি করে নিয়মিত এক্সপ্রেশন তৈরি করতে কাছাকাছি পেলে আমি এটি আপডেট করব।


0

এই রেজেক্স এক্সপ্রেশনটি তাদের দেশের কোডগুলি সহ ভারত, কানাডা, ইউরোপ, নিউজিল্যান্ড, অস্ট্রেলিয়া, মার্কিন যুক্তরাষ্ট্রের ফোন নম্বরগুলির জন্য কাজ করে:

"^(\+(([0-9]){1,2})[-.])?((((([0-9]){2,3})[-.]){1,2}([0-9]{4,10}))|([0-9]{10}))$"


0

এটি আমার জন্য 00, 001, 0011 ইত্যাদি উপসর্গ ছাড়াই কাজ করে:

/^\+*(\d{3})*[0-9,\-]{8,}/



0

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

const PhoneEuropeRegExp = () => {
    // eu phones map https://en.wikipedia.org/wiki/Telephone_numbers_in_Europe
    const phonesMap = {
        "43": [4, 13],
        "32": [8, 10],
        "359": [7, 9],
        "385": [8, 9],
        "357": 8,
        "420": 9,
        "45": 8,
        "372": 7,
        "358": [5, 12],
        "33": 9,
        "350": 8,
        "49": [3, 12],
        "30": 10,
        "36": [8, 9],
        "354": [7, 9],
        "353": [7, 9],
        "39": [6, 12],
        "371": 8,
        "423": [7, 12],
        "370": 8,
        "352": 8,
        "356": 8,
        "31": 9,
        "47": [4, 12],
        "48": 9,
        "351": 9,
        "40": 9,
        "421": 9,
        "386": 8,
        "34": 9,
        "46": [6, 9],
    };
    const regExpBuilt = Object.keys(phonesMap)
        .reduce(function(prev, key) {
            const val = phonesMap[key];
            if (Array.isArray(val)) {
                prev.push("(\\+" + key + `[0-9]\{${val[0]},${val[1]}\})`);
            } else {
                prev.push("(\\+" + key + `[0-9]\{${val}\})`);
            }
            return prev;
        }, [])
        .join("|");
    return new RegExp(`^(${regExpBuilt})$`);
};

alert(PhoneEuropeRegExp().test("+420123456789"))

-4

এটি চেষ্টা করে দেখুন, 12 এর চেয়ে বেশি কোনও ফোন নম্বর আছে কিনা তা আমি জানি না:

^(00|\+){1}\d{12}$

1
এটি দেশের কোড সহ ঠিক 12 টি সংখ্যার সাথে সংখ্যার সাথে মেলে । এটি ভুল কারণ এটি বিশ্বজুড়ে দৈর্ঘ্যের পরিবর্তনশীলতার জন্য অ্যাকাউন্ট করে না। অধিকন্তু, সর্বোচ্চ দৈর্ঘ্য আসলে 15 ডিজিটের
tmt

1
@tmt ^(00|\+){1}\d{12,15}$তাহলে কেমন হয় ?
টিউরিংতেস্টেড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.