مواد پر جائیں

فون نمبر جنریٹر اور ویلیڈیٹر - کسی بھی ملک کے لیے ٹیسٹ نمبر

امریکہ، برطانیہ، میکسیکو، بھارت کے لیے درست ٹیسٹ فون نمبر تیار کریں۔ مناسب فارمیٹنگ کے ساتھ موبائل یا لینڈ لائن نمبر بنائیں۔ ڈویلپرز کے لیے مفت ٹول جو ویلیڈیشن لاجک کی جانچ کرتا ہے۔

فون نمبر جنریٹر اور توثیق کنندہ

لوڈنگ کیلکولیٹر...
📚

دستاویزات

فون نمبر جنریشن کی اہمیت

فون توثیق کے منطق کو جانچنا مشکل ہو سکتا ہے۔ آپ کو ایسے حقیقی نمبر درکار ہوتے ہیں جو ملک کی مخصوص پیٹرن پر پورے اترتے ہوں، لیکن دستی طور پر ٹیسٹ ڈیٹا بنانا تھکاؤ بھرا اور غلطی کا شکار ہوتا ہے۔ یہ ٹول اس مسئلے کو حل کرتا ہے بہت سے ممالک کے لیے ڈھانچے کے اعتبار سے درست فون نمبر تیار کرکے - مکمل علاقائی کوڈز، موبائل پریفکس اور فارمیٹنگ کے ساتھ۔

چاہے آپ کانٹیکٹ فارم بنا رہے ہوں، SMS API کی جانچ کر رہے ہوں، یا ڈویلپمنٹ ڈیٹا بیس کو بھر رہے ہوں، آپ کو ایسے نمبر ملیں گے جو حقیقی دنیا کے فارمیٹ سے میل کھاتے ہیں۔ یہ ٹول بین الاقوامی معیارات (جیسے E.164) کی پیچیدگی کو سنبھالتا ہے جبکہ انٹرفیس کو سادہ رکھتا ہے: ایک ملک منتخب کریں، موبائل یا لینڈ لائن چنیں، اور جنریٹ کریں۔

یہ رینڈم ڈیجٹ جنریٹرز سے کیا مختلف بناتا ہے؟ یہ قواعد کا احترام کرتا ہے۔ میکسیکن موبائل نمبروں کو صحیح علاقائی کوڈز (میکسیکو سٹی کے لیے 55، گوادلاجارا کے لیے 33) دیے جاتے ہیں۔ امریکی نمبر ان غلط پیٹرن سے بچتے ہیں جیسے 0 یا 1 سے شروع ہونے والے علاقائی کوڈز۔ برطانوی موبائل نمبر 7 سے شروع ہوتے ہیں۔ یہ تفصیلات اہم ہیں جب آپ اس توثیق کی منطق کو جانچ رہے ہوتے ہیں جس کا سामنا صارفین کو پروڈکشن میں کرنا پڑتا ہے۔

فون نمبر جنریٹر کیسے کام کرتا ہے

سادہ انٹرفیس کے پیچھے، جنریٹر ویلڈ فون نمبر بنانے کے لیے ملک مخصوص قواعد لاگو کرتا ہے:

  1. ملک اور علاقہ انتخاب: اپنا ہدف ملک اور علاقہ منتخب کریں۔ یہ ایریا کوڈ کا تعین کرتا ہے - مثال کے طور پر، میکسیکو میں "CDMX" منتخب کرنے پر خود بخود ایریا کوڈ 55 استعمال ہوتا ہے۔

  2. نمبر کی قسم کی منطق: موبائل اور لینڈ لائن نمبر مختلف پیٹرن پر چلتے ہیں۔ برطانیہ میں، موبائل 7 سے شروع ہوتے ہیں، جبکہ لینڈ لائن جغرافیائی کوڈز جیسے لندن کے لیے 20 استعمال کرتے ہیں۔ ٹول آپ کے انتخاب کے مطابق صحیح سابقہ لگاتا ہے۔

  3. بے ترتیب ہندسہ جنریشن: سبسکرائبر نمبروں کے لیے، ٹول درست رینج کے اندر بے ترتیب ہندسے تخلیق کرتا ہے۔ تمام ہندسے ہر جگہ کام نہیں کرتے - امریکی ایریا کوڈ 0 یا 1 سے شروع نہیں ہو سکتے، اور کچھ کوڈز خدمات کے لیے محفوظ ہیں۔

  4. فارمیٹ کا اطلاق: نمبروں کو E.164 معیارات (بین الاقوامی) یا مقامی روایات کے مطابق فارمیٹ کیا جاتا ہے۔ میکسیکن نمبر بین الاقوامی طور پر "+52 55 1234 5678" یا مقامی طور پر "55 1234 5678" کے طور پر ظاہر ہوتے ہیں۔

  5. توثیق: ہر تخلیق کردہ نمبر کو اس ملک کے لیے مخصوص ریجیکس پیٹرن کے خلاف چیک کیا جاتا ہے۔ یہ ڈھانچے کی غلطیوں کو نمبر ظاہر کرنے سے پہلے پکڑ لیتا ہے۔

جو آپ نہیں دیکھیں گے: ٹول جان بوجھ کر ایمرجنسی نمبروں (جیسے 911)، ٹیسٹ رینج، اور خاص سروس کوڈز سے بچتا ہے۔ یہ آؤٹ پٹ کو ٹیسٹنگ ماحول کے لیے محفوظ بناتا ہے جہاں آپ حقیقی خدمات کو غلطی سے متحرک نہیں کرنا چاہتے۔

فارمولا اور الگوریدم

موبائل نمبر جنریشن ایک سادہ رینڈم عمل لگ سکتا ہے، لیکن اسے صحیح طریقے سے نافذ کرنے کے لیے ریاضی کی پابندیوں اور پیٹرن کو سمجھنا ضروری ہے جو مختلف علاقوں میں موبائل نمبر کو درست بناتے ہیں۔

رینڈم نمبر جنریشن الگوریدم

درست موبائل نمبر جنریٹ کرنے کا بنیادی الگوریدم اس فارمولے پر عمل کرتا ہے:

N=C+A+P+SN = C + A + P + S

جہاں:

  • NN مکمل موبائل نمبر ہے
  • CC ملک کا کوڈ ہے (مقامی فارمیٹ میں اختیاری)
  • AA علاقائی/خطے کا کوڈ ہے
  • PP پریفکس ہے (جس پر نمبر کی قسم کے لحاظ سے پابندیاں لاگو ہو سکتی ہیں)
  • SS سبسکرائبر نمبر (رینڈم ہندسے)

توثیق الگوریدم

موبائل نمبروں کی توثیق کو ایک ریگولر ایکسپریشن پیٹرن میچنگ آپریشن کے طور پر بیان کیا جا سکتا ہے، جسے ریاضی میں اس طرح پیش کیا جا سکتا ہے:

1 & \text{اگر } N \text{ میچ کرتا ہے } R_c \\ 0 & \text{دوسری صورت میں} \end{cases}$$ جہاں: - $V(N)$ توثیق کا نتیجہ ہے (1 درست، 0 نادرست) - $N$ توثیق کیا جانے والا موبائل نمبر ہے - $R_c$ ملک $c$ کے لیے ریگولر ایکسپریشن پیٹرن ہے ### امکان اور تقسیم رینڈم موبائل نمبر جنریٹ کرتے وقت، ہمیں ہر پوزیشن پر ہندسوں کے درست رینج پر غور کرنا چاہیے۔ مثال کے طور پر، امریکہ میں، ایریا کوڈ 0 یا 1 سے شروع نہیں ہو سکتے، اور سروس کوڈز جیسے 911 بھی نہیں ہو سکتے۔ کسی ملک کے لیے ممکنہ درست موبائل نمبروں کی تعداد کا حساب اس طرح کیا جا سکتا ہے: $$P_c = \prod_{i=1}^{n} d_i$$ جہاں: - $P_c$ ملک $c$ کے لیے کل ممکنہ درست موبائل نمبر ہیں - $n$ موبائل نمبر میں پوزیشنوں کی تعداد ہے (ملک کے کوڈ کو خارج کرتے ہوئے) - $d_i$ پوزیشن $i$ کے لیے درست ہندسوں کی تعداد ہے مثال کے طور پر، امریکی موبائل نمبروں کے لیے (ملک کے کوڈ کو خارج کرتے ہوئے): - ایریا کوڈ کا پہلا ہندسہ: 8 امکانات (2-9) - ایریا کوڈ کے دوسرے اور تیسرے ہندسے: ہر ایک میں 10 امکانات (0-9) - سات سبسکرائبر ہندسے: ہر ایک میں 10 امکانات (0-9) $$P_{US} = 8 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 = 8 \times 10^9 = 8,000,000,000$$ اس کا مطلب ہے کہ 8 ارب ممکنہ درست امریکی موبائل نمبر ہیں، حالانکہ بہت سے محفوظ یا غیر مخصوص ہیں۔ ## اہم خصوصیات ### ملٹی کنٹری سپورٹ کے ساتھ علاقائی درستگی چار بڑے مارکیٹوں کے لیے فون نمبر تخلیق کریں: - **میکسیکو (+52)**: سی ڈی ایم کے (55)، گوادلاخارا (33)، مونٹری (81)، کانکن (998) وغیرہ کے لیے علاقائی کوڈز - **امریکہ (+1)**: درست ایریا کوڈز کے ساتھ معیاری 10 ڈیجٹ فارمیٹ - **برطانیہ (+44)**: لندن (20)، مینچسٹر (161) اور موبائل (7xxx) کے لیے جغرافیائی کوڈز - **بھارت (+91)**: مناسب کیریئر پریفکسز (6/7/8/9) کے ساتھ 10 ڈیجٹ موبائل نمبر ہر علاقہ مصنوعی ایریا کوڈز استعمال کرتا ہے۔ جب آپ "میکسیکو سٹی" کا انتخاب کرتے ہیں، تو آپ کو 55 ایریا کوڈ ملتا ہے - جو حقیقی میکسیکن نمبروں میں استعمال ہوتا ہے۔ یہ درستگی اہم ہے جب ایپلیکیشن نمبروں کو پارس یا تصدیق کرتے ہیں۔ ### بین الاقوامی بمقابلہ مقامی فارمیٹ ٹوگل دو معیاری نمائندگیوں کے درمیان سوئچ کریں: - **بین الاقوامی (E.164)**: +52 55 1234 5678 - APIs، ڈیٹابیسز اور عالمی سسٹمز کے لیے استعمال ہوتا ہے - **مقامی**: 55 1234 5678 - صارفین اپنے ملک میں نمبر کیسے دیکھتے ہیں **اس کی اہمیت**: آپ کی ایپلیکیشن کو نمبر دونوں فارمیٹ میں مل سکتے ہیں۔ میکسیکو کے صارفین مقامی فارمیٹ ٹائپ کرتے ہیں، لیکن بین الاقوامی صارفین ملک کے کوڈ شامل کرتے ہیں۔ دونوں کی جانچ یہ سنتشت کرتی ہے کہ آپ کی توثیق حقیقی ان پٹ کو سنبھالتی ہے۔ ### موبائل اور لینڈ لائن میں امتیاز مناسب پریفکسز کے ساتھ موبائل یا لینڈ لائن نمبر تخلیق کریں: - **موبائل**: برطانیہ کے نمبر 7 سے شروع ہوتے ہیں، آفکام کے ضوابط کے مطابق - **لینڈ لائن**: مخصوص شہروں سے جڑے جغرافیائی کوڈز (لندن کا 20، دہلی کا 11) یہ امتیاز تکنیکی ہے، صرف سطحی نہیں۔ موبائل اور لینڈ لائن نمبر ایک ہی ملک کے اندر مختلف نمبرنگ پلانز پر عمل کرتے ہیں۔ آپ کی توثیق کی منطق کو دونوں کو پہچاننے کی ضرورت ہے۔ ### ایک کلک میں کاپی جنرٹ کردہ نمبروں کو فوری طور پر اپنے کلپ بورڈ میں شامل کرنے کے لیے کاپی بٹن پر کلک کریں۔ کوئی دستی انتخاب یا ہائی لائٹنگ کی ضرورت نہیں - بس کلک کریں اور اپنے ٹیسٹ اسکرپٹس، SQL انسرٹس یا فارم فیلڈز میں پیسٹ کریں۔ ## فون نمبر فارمیٹ کے معیارات ### E.164 کو سمجھنا: عالمی معیار [E.164 معیار](https://www.itu.int/rec/T-REC-E.164/en)، جو بین الاقوامی مواصلاتی اتحاد کے ذریعے برقرار رکھا جاتا ہے، یہ بیان کرتا ہے کہ عالمی سطح پر فون نمبر کیسے کام کرتے ہیں۔ 1984 میں قائم کیا گیا اور آج بھی استعمال میں، اس نے بنیادی اصول طے کیے: - **زیادہ سے زیادہ 15 ڈیجٹ** کل (ملک کا کوڈ شامل) - بین الاقوامی فارمیٹ کے لیے **پلس سائن کا سابقہ** (+) - **کوئی خاص علامتیں نہیں** اصل نمبر میں (جگہیں اور ہائفن صرف ڈسپلے کے لیے ہیں) فارمیٹ کی ساخت: +[ملک کا کوڈ] [قومی نمبر] ڈویلپرز کے لیے اس کی اہمیت: ڈیٹا بیس میں فون نمبر محفوظ کرتے وقت، E.164 فارمیٹ استعمال کریں۔ یہ واضح، پارسیبل اور کسی بھی مواصلاتی API کے ساتھ کام کرتا ہے۔ "+15551234567" جیسا نمبر عالمی طور پر سمجھا جاتا ہے، جبکہ "(555) 123-4567" کو سمجھنے کے لیے سیاق و سباق کی ضرورت ہوتی ہے۔ [SVG ڈایگرام یہاں رہے گا] ### ملک مخصوص فارمیٹس #### میکسیکو (+52) میکسیکو کے فون نمبر کے نظام میں یہ پیٹرن ہیں: - **موبائل نمبر**: کل 10 ڈیجٹ - فارمیٹ: +52 XX XXXX XXXX - مثال: +52 55 1234 5678 - میکسیکو میں موبائل نمبر عام طور پر ایریا کوڈز سے شروع ہوتے ہیں جیسے 55 (میکسیکو سٹی)، 33 (گوادلاجارا)، 81 (مونٹری) - **لینڈ لائن نمبر**: 8 ڈیجٹ (2 ڈیجٹ ایریا کوڈ کے ساتھ) - فارمیٹ: +52 XX XXXX XXXX - مثال: +52 55 5123 4567 #### امریکہ متحدہ (+1) - **موبائل اور لینڈ لائن**: کل 10 ڈیجٹ - فارمیٹ: +1 XXX XXX XXXX - ایریا کوڈ (پہلے 3 ڈیجٹ) علاقے کے مطابق مختلف - موبائل اور لینڈ لائن نمبر ایک ہی فارمیٹ پر چلتے ہیں لیکن مختلف سابقے ہوتے ہیں #### برطانیہ (+44) - **موبائل نمبر**: عام طور پر '7' سے شروع ہوتے ہیں - فارمیٹ: +44 7XXX XXXXXX - مثال: +44 7700 123456 - **لینڈ لائن نمبر**: علاقے کے مطابق مختلف - فارمیٹ: +44 XX XXXX XXXX یا +44 XXX XXX XXXX - مثال: +44 20 1234 5678 (لندن) #### بھارت (+91) - **موبائل نمبر**: 10 ڈیجٹ، عام طور پر 6، 7، 8 یا 9 سے شروع ہوتے ہیں - فارمیٹ: +91 XXXXX XXXXX - مثال: +91 98765 43210 - **لینڈ لائن نمبر**: علاقے کے مطابق مختلف، عام طور پر 8 ڈیجٹ اور STD کوڈ - فارمیٹ: +91 XX XXXX XXXX - مثال: +91 11 2345 6789 (دہلی) ## فوری شروع گائیڈ: اپنا پہلا ٹیسٹ نمبر تخلیق کریں ### بنیادی تخلیق (10 سیکنڈ سے کم میں) 1. **اپنا ملک** ڈراپ ڈاؤن سے منتخب کریں: امریکہ (+1)، برطانیہ (+44)، میکسیکو (+52)، یا بھارت (+91) 2. **ایک علاقہ منتخب کریں** صحیح ایریا کوڈ حاصل کرنے کے لیے: - میکسیکو: سی ڈی ایم ایکس (55)، گوادلاخارا (33)، مونٹری (81) - امریکہ: ریاست کے مطابق مختلف - برطانیہ: لندن (20)، مانچسٹر (161)، یا موبائل (7xxx) 3. **موبائل یا لینڈ لائن** ٹوگل کریں جس کا آپ ٹیسٹ کر رہے ہیں 4. **فارمیٹ منتخب کریں**: بین الاقوامی (+ملک کا کوڈ) یا مقامی 5. **"تخلیق کریں" پر کلک کریں** اور نتیجہ کاپی کریں ### عملی مثال: میکسیکن رابطہ فارم کا ٹیسٹ فرض کریں آپ میکسیکن صارفین کے لیے رجسٹریشن فارم بنا رہے ہیں اور فون توثیق کا ٹیسٹ کرنا چاہتے ہیں: **میکسیکو سٹی موبائل نمبرز کے لیے:** - ملک: "+52 میکسیکو" - علاقہ: "سی ڈی ایم ایکس (میکسیکو سٹی)" - موبائل: ٹوگل آن - فارمیٹ: بین الاقوامی ("+52" کی ہینڈلنگ کا ٹیسٹ کرنے کے لیے) - تخلیق کریں → نتیجہ: "+52 55 8374 2916" **مقامی فارمیٹ کا ٹیسٹ کرنے کے لیے:** - اسی سیٹنگ کو رکھیں، بین الاقوامی کو آف کریں - تخلیق کریں → نتیجہ: "55 8374 2916" اب آپ کے پاس دو درست فارمیٹ ہیں جن سے آپ یہ ٹیسٹ کر سکتے ہیں کہ آپ کا فارم دونوں پیٹرن کو کیسے قبول کرتا ہے۔ اپنے ویلیڈیٹر میں ان کو چلا کر دیکھیں کہ یہ دونوں پیٹرن کو قبول کرتا ہے۔ ## پیاده سازی کے مثالیں ذیل کا کوڈ مختلف زبانوں میں فون نمبر جنریٹ کرنے اور تصدیق کرنے کا طریقہ دکھاتا ہے۔ یہ مثالیں بنیادی منطق کو ظاہر کرتی ہیں - پروڈکشن میں، مکمل توثیق کے لیے [libphonenumber](https://github.com/google/libphonenumber) استعمال کرنے پر غور کریں۔ ### جاوا سکرپٹ
1// میکسیکن موبائل نمبر جنریٹ کرنے کی جاوا سکرپٹ مثال
2function generateMexicanMobileNumber(international = true) {
3  // میکسیکو سٹی ایریا کوڈ
4  const areaCode = "55";
5  
6  // نمبر کے لیے 8 بے ترتیب ڈیجٹ جنریٹ کریں
7  let number = "";
8  for (let i = 0; i < 8; i++) {
9    number += Math.floor(Math.random() * 10);
10  }
11  
12  // نمبر کی شکل بندی کریں
13  const formattedNumber = `${areaCode} ${number.substring(0, 4)} ${number.substring(4, 8)}`;
14  
15  // اگر بین الاقوامی فارمیٹ درخواست کی گئی ہے تو ملک کا کوڈ شامل کریں
16  return international ? `+52 ${formattedNumber}` : formattedNumber;
17}
18
19// میکسیکن فون نمبر کی توثیق کے لیے فنکشن
20function validateMexicanPhoneNumber(number) {
21  // بین الاقوامی فارمیٹ کا پیٹرن
22  const intlPattern = /^\+52 \d{2} \d{4} \d{4}$/;
23  
24  // مقامی فارمیٹ کا پیٹرن
25  const localPattern = /^\d{2} \d{4} \d{4}$/;
26  
27  return intlPattern.test(number) || localPattern.test(number);
28}
29
30// مثالی استعمال
31const phoneNumber = generateMexicanMobileNumber();
32console.log(phoneNumber); // مثال: +52 55 1234 5678
33console.log(`درست ہے: ${validateMexicanPhoneNumber(phoneNumber)}`); // درست ہے: true
34

پائتھن

1# فون نمبر جنریٹ کرنے اور توثیق کرنے کی پائتھن مثال
2import random
3import re
4
5def generate_us_phone_number(international=True):
6    """رینڈم امریکی فون نمبر جنریٹ کریں۔"""
7    # ایریا کوڈ جنریٹ کریں (911 جیسے کوڈوں سے بچتے ہوئے)
8    area_code = random.randint(200, 999)
9    
10    # نمبر کے لیے 7 بے ترتیب ڈیجٹ جنریٹ کریں
11    prefix = random.randint(200, 999)
12    line = random.randint(1000, 9999)
13    
14    # نمبر کی شکل بندی کریں
15    if international:
16        return f"+1 {area_code} {prefix} {line}"
17    else:
18        return f"({area_code}) {prefix}-{line}"
19        
20def validate_us_phone_number(number):
21    """چیک کریں کہ کیا سٹرنگ امریکی فون نمبر کے پیٹرن سے میل کھاتی ہے۔"""
22    # بین الاقوامی فارمیٹ کا پیٹرن
23    intl_pattern = r'^\+1 \d{3} \d{3} \d{4}$'
24    
25    # مقامی فارمیٹ کا پیٹرن
26    local_pattern = r'^\(\d{3}\) \d{3}-\d{4}$'
27    
28    return bool(re.match(intl_pattern, number) or re.match(local_pattern, number))
29
30# مثالی استعمال
31phone = generate_us_phone_number()
32print(phone)  # مثال: +1 555 123 4567
33print(f"درست ہے: {validate_us_phone_number(phone)}")  # درست ہے: True
34

جاوا

1import java.util.Random;
2import java.util.regex.Pattern;
3
4public class PhoneNumberGenerator {
5    private static final Random random = new Random();
6    
7    public static String generateUKMobileNumber(boolean international) {
8        // یوکے موبائل نمبر '7' سے شروع ہوتے ہیں
9        StringBuilder number = new StringBuilder("7");
10        
11        // 9 اور بے ترتیب ڈیجٹ جنریٹ کریں
12        for (int i = 0; i < 9; i++) {
13            number.append(random.nextInt(10));
14        }
15        
16        // نمبر کی شکل بندی کریں
17        String formatted = number.substring(0, 4) + " " + number.substring(4, 10);
18        
19        // اگر بین الاقوامی فارمیٹ درخواست کی گئی ہے تو ملک کا کوڈ شامل کریں
20        return international ? "+44 " + formatted : "0" + formatted;
21    }
22    
23    public static boolean validateUKMobileNumber(String number) {
24        // بین الاقوامی فارمیٹ کا پیٹرن
25        Pattern intlPattern = Pattern.compile("^\\+44 7\\d{3} \\d{6}$");
26        
27        // مقامی فارمیٹ کا پیٹرن
28        Pattern localPattern = Pattern.compile("^07\\d{3} \\d{6}$");
29        
30        return intlPattern.matcher(number).matches() || 
31               localPattern.matcher(number).matches();
32    }
33    
34    public static void main(String[] args) {
35        String phoneNumber = generateUKMobileNumber(true);
36        System.out.println(phoneNumber); // مثال: +44 7123 456789
37        System.out.println("درست ہے: " + validateUKMobileNumber(phoneNumber)); // درست ہے: true
38    }
39}
40

پی ایچ پی

1<?php
2// انڈین موبائل نمبر جنریٹ کرنے اور توثیق کرنے کی پی ایچ پی مثال
3
4function generateIndianMobileNumber($international = true) {
5    // انڈین موبائل نمبر 6، 7، 8، یا 9 سے شروع ہوتے ہیں
6    $prefixes = [6, 7, 8, 9];
7    $prefix = $prefixes[array_rand($prefixes)];
8    
9    // 9 اور بے ترتیب ڈیجٹ جنریٹ کریں
10    $number = $prefix;
11    for ($i = 0; $i < 9; $i++) {
12        $number .= rand(0, 9);
13    }
14    
15    // نمبر کی شکل بندی کریں
16    $formatted = substr($number, 0, 5) . " " . substr($number, 5, 5);
17    
18    // اگر بین الاقوامی فارمیٹ درخواست کی گئی ہے تو ملک کا کوڈ شامل کریں
19    return $international ? "+91 " . $formatted : $formatted;
20}
21
22function validateIndianMobileNumber($number) {
23    // بین الاقوامی فارمیٹ کا پیٹرن
24    $intlPattern = '/^\+91 [6-9]\d{4} \d{5}$/';
25    
26    // مقامی فارمیٹ کا پیٹرن
27    $localPattern = '/^[6-9]\d{4} \d{5}$/';
28    
29    return preg_match($intlPattern, $number) || preg_match($localPattern, $number);
30}
31
32// مثالی استعمال
33$phoneNumber = generateIndianMobileNumber();
34echo $phoneNumber . "\n"; // مثال: +91 98765 43210
35echo "درست ہے: " . (validateIndianMobileNumber($phoneNumber) ? "true" : "false") . "\n"; // درست ہے: true
36?>
37

سی شارپ

1using System;
2using System.Text;
3using System.Text.RegularExpressions;
4
5public class PhoneNumberGenerator
6{
7    private static Random random = new Random();
8    
9    public static string GenerateMexicanMobileNumber(bool international = true)
10    {
11        // میکسیکو سٹی ایریا کوڈ
12        string areaCode = "55";
13        
14        // نمبر کے لیے 8 بے ترتیب ڈیجٹ جنریٹ کریں
15        StringBuilder number = new StringBuilder();
16        for (int i = 0; i < 8; i++)
17        {
18            number.Append(random.Next(10));
19        }
20        
21        // نمبر کی شکل بندی کریں
22        string formattedNumber = $"{areaCode} {number.ToString(0, 4)} {number.ToString(4, 4)}";
23        
24        // اگر بین الاقوامی فارمیٹ درخواست کی گئی ہے تو ملک کا کوڈ شامل کریں
25        return international ? $"+52 {formattedNumber}" : formattedNumber;
26    }
27    
28    public static bool ValidateMexicanPhoneNumber(string number)
29    {
30        // بین الاقوامی فارمیٹ کا پیٹرن
31        Regex intlPattern = new Regex(@"^\+52 \d{2} \d{4} \d{4}$");
32        
33        // مقامی فارمیٹ کا پیٹرن
34        Regex localPattern = new Regex(@"^\d{2} \d{4} \d{4}$");
35        
36        return intlPattern.IsMatch(number) || localPattern.IsMatch(number);
37    }
38    
39    public static void Main()
40    {
41        string phoneNumber = GenerateMexicanMobileNumber();
42        Console.WriteLine(phoneNumber); // مثال: +52 55 1234 5678
43        Console.WriteLine($"درست ہے: {ValidateMexicanPhoneNumber(phoneNumber)}"); // درست ہے: True
44    }
45}
46

فون نمبر جنریشن کے عملی استعمال کے کیسز

فارم والیڈیشن لاجک کی جانچ

جب رجسٹریشن فارم بنا رہے ہوں، تو آپ کو یہ تصدیق کرنے کی ضرورت ہے کہ والیڈیشن خراب نمبروں کو پکڑے بغیر درست نمبروں کو قبول کرے۔ عام طور پر یہ ہوتا ہے: ڈویلپرز "555-1234" یا "123456789" جیسے سادہ پیٹرن کے ساتھ جانچ کرتے ہیں، جو کنارے کے معاملات کو نہیں دکھاتے۔

ایک عام سینیریو بین الاقوامی صارف رجسٹریشن ہے۔ آپ کا فارم امریکی نمبروں کو بخوبی قبول کر سکتا ہے لیکن جغرافیائی کوڈز کی متغیر لمبائی کی وجہ سے برطانوی نمبروں میں ناکام ہو سکتا ہے۔ ملک مخصوص نمبر جنریٹ کرکے، آپ ان مسائل کو صارفین کی اطلاع سے پہلے پکڑ سکتے ہیں۔

پرو ٹپ: ہر ملک کے لیے 50-100 نمبر جنریٹ کریں اور اپنے والیڈیٹر میں ڈالیں۔ آپ جلد ہی اپنے regex پیٹرن میں خالیوں کو ڈھونڈ لیں گے۔

ڈویلپمنٹ ڈیٹا بیسز کو بھرنا

میرے تجربے میں بڑے ڈیٹاسیٹس کے ساتھ کام کرتے ہوئے، حقیقت پسند ٹیسٹ ڈیٹا UI بگز کو پکڑنے میں بہت فرق کرتا ہے۔ جب آپ کی کسٹمر ٹیبل میں 10,000 اندراجات ہوں جو سب "555-5555" دکھا رہے ہوں، تو آپ یہ نہیں دیکھیں گے کہ فون کالم بین الاقوامی فارمیٹ "+44 7700 123456" کے لیے کافی چوڑے نہیں ہیں۔

جو اچھی طرح کام کرتا ہے: مختلف نمبر جنریٹ کریں (مختلف ممالک، موبائل/لینڈ لائن مکس) جو آپ کی پروڈکشن تقسیم سے میل کھاتے ہوں۔ اگر آپ کے صارفین کا 70% میکسیکو میں ہیں، تو اپنے ٹیسٹ ڈیٹا کا 70% میکسیکن نمبر بنائیں۔ یہ ڈسپلے کے مسائل، ترتیب کے مسائل اور برآمدی فارمیٹنگ بگز کو ظاہر کرتا ہے جنہیں آپ دوسری صورت میں نظرانداز کر دیتے۔

API انٹیگریشن ٹیسٹنگ

SMS یا آواز APIs کی جانچ کرنے کے لیے فون نمبروں کی ضرورت ہوتی ہے، لیکن آپ ڈویلپمنٹ میں حقیقی کسٹمر ڈیٹا کا استعمال نہیں کر سکتے۔ سروس فراہم کنندگان جیسے Twilio ٹیسٹ نمبر پیش کرتے ہیں، لیکن وہ محدود ہیں۔ جامع ٹیسٹنگ کے لیے - خاص طور پر شرح کی حد بندی، بیچ پروسیسنگ، اور غلطی کو ہینڈل کرنے کے لیے - آپ کو حجم کی ضرورت ہے۔

ایک عام غلطی: صرف اپنے فون نمبر کے ساتھ ٹیسٹ کرنا۔ یہ مختلف فارمیٹس یا بین الاقوامی نمبروں کے مسائل کو نہیں ظاہر کرے گا۔ اپنے ہدف کے بازاروں سے میل کھانے والے نمبروں کا سیٹ جنریٹ کریں، اور آپ فارمیٹنگ کے بگز کو پکڑیں گے اس سے پہلے کہ وہ پروڈکشن تک پہنچیں۔

تعلیمی اور ڈیمو ماحول

جب عملے کو CRM سسٹمز پر تربیت دی جا رہی ہو یا کلائنٹس کو سافٹ ویئر کا مظاہرہ کیا جا رہا ہو، تو آپ کو ایسا ڈیٹا درکار ہے جو حقیقی لگے بغیر حقیقی کسٹمر کی معلومات کو ظاہر نہ کرے۔ "1234567890" جیسے بےترتیب نمبر جعلی لگتے ہیں اور اعتبار کو کم کر دیتے ہیں۔

میں نے مفید پایا: مکمل ٹیسٹ ڈیٹاسیٹ جنریٹ کریں جن میں حقیقی نام، پتے اور مناسب طریقے سے فارمیٹ کیے گئے فون نمبر ہوں جن علاقوں کا مظاہرہ کیا جا رہا ہے۔ یہ تربیت کو زیادہ مؤثر بناتا ہے کیونکہ یہ اس کی عکاسی کرتا ہے جو صارفین پروڈکشن میں دیکھیں گے۔

متبادل حل کے ساتھ موازنہ

گوگل کی libphonenumber لائبریری

پروڈکشن توثیق کے لیے، گوگل کی libphonenumber سونے کا معیار ہے۔ یہ 200+ ممالک کو ہینڈل کرتی ہے، حقیقی کیریئر ڈیٹا کے خلاف توثیق کرتی ہے، اور مختلف فارمیٹس میں فون نمبر پارس کرتی ہے۔ تاہم، یہ توثیق کے لیے ڈیزائن کی گئی ہے، جنریشن کے لیے نہیں۔

libphonenumber کب استعمال کریں: جب آپ کو پروڈکشن میں صارف کے ان پٹ کی توثیق کرنے کی ضرورت ہو۔ یہ غلط ایریا کوڈز اور غیر فعال نمبر رینج کو پکڑتی ہے۔

اس ٹول کب استعمال کریں: جب آپ کو لائبریری سیٹ کرنے کے بغیر فوری ٹیسٹ ڈیٹا کی ضرورت ہو۔ ہمارا ٹول سیکنڈوں میں جنریٹ کرتا ہے؛ libphonenumber کو انٹیگریٹ کرنے میں گھنٹے لگ جاتے ہیں۔

فیکر لائبریریز اور ڈیٹا جنریشن سوٹس

فیکر.جے ایس یا پائتھن کی فیکر لائبریری جیسے ٹولز فون نمبر کے ساتھ ساتھ نام، پتے اور دیگر جعلی ڈیٹا جنریٹ کرتے ہیں۔ یہ مکمل صارف پروفائل بنانے کے لیے بہترین ہیں۔

محدودیت: زیادہ تر فیکر لائبریریز ایسے نمبر جنریٹ کرتی ہیں جو درست لگتے ہیں لیکن تمام ملک مخصوص قواعد پر پورا نہیں اترتے۔ مثال کے طور پر، وہ یو کے کے نمبر بنا سکتی ہیں جو 8 سے شروع ہوتے ہیں (جو موبائل پریفکس کے طور پر درست نہیں ہیں)۔

اس ٹول کا فائدہ: ہم خاص طور پر فون نمبر کے قواعد پر توجہ مرکوز کرتے ہیں، یہ سنتشت کرتے ہوئے کہ جنریٹ کردہ نمبر ملک مخصوص پیٹرن کی درستگی پر پورا اترتے ہیں۔

ٹیلی کمیونیکیشن فراہم کنندہ ٹیسٹ نمبر

ٹویلیو اور وونیج جیسے فراہم کنندگان API ڈویلپمنٹ کے لیے ٹیسٹ فون نمبر پیش کرتے ہیں۔ یہ اصل میں کام کرنے والے نمبر ہیں جو پیغامات نہیں بھیجتے یا کالیں نہیں کرتے۔

فراہم کنندہ ٹیسٹ نمبر کب استعمال کریں: اینڈ ٹو اینڈ ٹیسٹنگ کے لیے جہاں آپ کو پیغام کی ترسیل یا کال کی تکمیل کی تصدیق کرنے کی ضرورت ہو۔

اس ٹول کب استعمال کریں: یونٹ ٹیسٹس، یوآئی ٹیسٹنگ، اور ڈیٹا بیس کی تعمیر کے لیے جہاں آپ کو API کی شرح کی حدود یا لاگت کے بغیر حجم اور تنوع کی ضرورت ہو۔

فون نمبر فارمیٹس اور معیارات کی تاریخ

فون نمبر فارمیٹس اور معیارات کی تکامل دنیا بھر میں ٹیلی کمیونیکیشن ٹیکنالوجی اور بنیادی ڈھانچے کے ساتھ قریبی طور پر جڑی ہوئی ہے۔

ابتدائی ٹیلیفون سسٹم (1870 کی دہائی-1950 کی دہائی)

جب ٹیلیفون سسٹم کو 19ویں صدی کے اواخر میں پیش کیا گیا، فون نمبر بہت مختصر تھے، اکثر صرف 2-4 ہندسے، کیونکہ ہر شہر یا قصبے کا اپنا آزاد ٹیلیفون ایکسچینج تھا۔ آپریٹرز نے کالز کو دستی طور پر سوئچ بورڈ میں تار پلگ کرکے جوڑا۔

جیسے جیسے ٹیلیفون نیٹ ورک بڑھے، نمبر لمبے ہوئے اور ایریا کوڈ متعارف کرائے گئے۔ نارتھ امریکن نمبرنگ پلان (NANP) 1947 میں امریکہ اور کینیڈا میں ایک متحد سسٹم قائم کرنے کے لیے بنایا گیا، جس نے مشہور 3-3-4 ہندسے کے فارمیٹ (ایریا کوڈ، ایکسچینج کوڈ، سبسکرائبر نمبر) کو متعارف کرایا۔

بین الاقوامی معیارات کی ترقی (1960 کی دہائی-1980 کی دہائی)

بین الاقوامی ٹیلی کمیونیکیشن یونین (ITU)، جو 1865 میں بین الاقوامی ٹیلیگراف یونین کے طور پر قائم ہوئی، نے 1960 کی دہائی میں بین الاقوامی ٹیلیفون نمبرنگ کے لیے معیارات ترقی دینا شروع کیا۔ اس نے ملک کے کوڈز اور بین الاقوامی ڈائلنگ طریقہ کار کی معیار سازی کی طرف راہ ہموار کی۔

1964 میں، ITU نے سفارش E.163 متعارف کرائی، جس نے بین الاقوامی ٹیلیفون نمبرنگ پلان قائم کیا۔ اس کی جگہ بعد میں 1984 میں سفارش E.164 نے لی، جو ابھی بھی بین الاقوامی عوامی ٹیلی کمیونیکیشن نمبرنگ کا موجودہ معیار ہے۔

موبائل انقلاب (1990 کی دہائی-2000 کی دہائی)

1990 اور 2000 کی دہائی میں موبائل فونز کے وسیع پیمانے پر استعمال نے نمبرنگ سسٹم کے لیے نئی چیلنجز پیدا کیں۔ کئی ممالک نے موبائل فونز کے لیے مخصوص پریفکسز یا پورے نمبر رینج متعارف کرائے۔ مثال کے طور پر، برطانیہ میں، موبائل نمبر عام طور پر '07' سے شروع ہوتے ہیں، جبکہ میکسیکو میں، موبائل نمبروں نے لینڈ لائن کے ساتھ ایک جیسا فارمیٹ رکھا لیکن مختلف ایریا کوڈز کے ساتھ۔

جدید معیارات اور VoIP دور (2000 کی دہائی-موجودہ)

وائس اوور آئی پی (VoIP) اور انٹرنیٹ پر مبنی مواصلات کے ابھرنے کے ساتھ، فون نمبر فارمیٹ زیادہ لچکدار ہو گئے ہیں۔ E.164 معیار کو ان نئی ٹیکنالوجیوں کو سمونے کے لیے ڈھالا گیا ہے، اور کئی ممالک نے زیادہ صلاحیت بنانے کے لیے اپنے نمبرنگ پلان میں ترمیم کی ہے۔

کئی ممالک میں نمبر پورٹیبلٹی کی تعارف نے موبائل اور لینڈ لائن نمبروں کے درمیان فرق کو اور دھندلا کر دیا ہے، کیونکہ صارف اب سروس کی قسم تبدیل کرتے وقت اپنے نمبر رکھ سکتے ہیں۔

آج، فون نمبر فارمیٹ مسلسل ترقی کر رہے ہیں، کچھ ممالک ایریا کوڈز کو ختم کرنے یا فون نمبروں کو ڈیجیٹل شناخت کے ساتھ ضم کرنے پر غور کر رہے ہیں۔ تاہم، E.164 کے ذریعے قائم کردہ بنیادی ڈھانچہ عالمی ٹیلی کمیونیکیشن نمبرنگ کی بنیاد برقرار ہے۔

اکثر پوچھے جانے والے سوالات

میں ٹیسٹنگ کے لیے کیسے ایک رینڈم فون نمبر تیار کر سکتا ہوں؟

اپنے ہدف کے ملک اور علاقے کو ڈراپ ڈاؤن سے منتخب کریں، موبائل یا لینڈ لائن فارمیٹ کے درمیان ٹوگل کریں، اور "فون نمبر تیار کریں" پر کلک کریں۔ ٹول اس ملک کے فارمیٹنگ کے اصولوں کی پیروی کرتے ہوئے ڈھانچے کے اعتبار سے درست نمبر تیار کرتا ہے۔ آپ بین الاقوامی فارمیٹ (ملک کے کوڈ کے ساتھ) اور مقامی فارمیٹ کے درمیان ٹوگل کر سکتے ہیں۔

مختلف سینیاریوز کی جانچ کے لیے، مختلف ترتیبات کے ساتھ کئی نمبر تیار کریں - یہ ان توثیقی خرابیوں کو پکڑنے میں مدد کرتا ہے جو صرف مخصوص فارمیٹ میں ظاہر ہوتی ہیں۔

کیا یہ ایسے فون نمبر ہیں جو کالیں یا ٹیکسٹس وصول کر سکتے ہیں؟

نہیں۔ تیار کردہ نمبر درست فارمیٹنگ کے پیٹرن پر عمل کرتے ہیں لیکن بے ترتیب طور پر بنائے گئے ہیں اور موجودہ سبسکرائبرز کو مختص نہیں کیے گئے۔ یہ توثیقی منطق کی جانچ کرنے، ڈیٹا بیس کو بھرنے، اور سافٹ ویئر کو ظاہر کرنے کے لیے ڈیزائن کیے گئے ہیں - حقیقی ٹیلی کمیونیکیشن کے لیے نہیں۔

اہم: کبھی بھی ان نمبروں کا استعمال حقیقی کالیں یا ٹیکسٹس کرنے کی کوشش کرنے کے لیے نہ کریں۔ یہ حقیقی لوگوں کے ہو سکتے ہیں یا غیر مختص۔

بین الاقوامی اور مقامی فون نمبر فارمیٹ میں کیا فرق ہے؟

بین الاقوامی فارمیٹ میں پلس سائن کے ساتھ ملک کا کوڈ شامل ہوتا ہے: +52 55 1234 5678 (میکسیکو)۔ یہ ای.164 معیار ہے جو عالمی ٹیلی کمیونیکیشن کے لیے استعمال ہوتا ہے۔

مقامی فارمیٹ دکھاتا ہے کہ آپ اس ملک میں کیسے ڈائل کریں گے: 55 1234 5678 (میکسیکو)۔ یہ ملک کے کوڈ کو چھوڑ دیتا ہے کیونکہ گھریلو کالوں کے لیے اس کی ضرورت نہیں ہوتی۔

بین الاقوامی صارفین کی خدمت کرنے والے ایپلیکیشنز کی جانچ کرتے وقت، دونوں فارمیٹ کی توثیق کریں۔ صارفین نمبر بے ترتیب طور پر درج کرتے ہیں - کچھ "+1 555..." پیسٹ کرتے ہیں، دوسرے "(555)..." ٹائپ کرتے ہیں۔ ایک مضبوط توثیق کار دونوں کو سنبھالتا ہے۔

(باقی مواد اسی طرح ترجمہ کیا جائے گا)

حوالہ جات

  1. بین الاقوامی مواصلاتی اتحاد (آئی ٹی یو)۔ "ای.164: بین الاقوامی عوامی مواصلاتی نمبرنگ پلان۔" آئی ٹی یو

  2. شمالی امریکی نمبرنگ پلان انتظامیہ۔ "شمالی امریکی نمبرنگ پلان کے بارے میں۔" این اے این پی اے

  3. آف کام (برطانیہ)۔ "ٹیلیفون نمبر - قومی ٹیلیفون نمبرنگ پلان۔" آف کام

  4. مواصلات محکمہ، بھارت حکومت۔ "قومی نمبرنگ پلان۔" ڈی او ٹی بھارت

  5. وفاقی مواصلات ادارہ (میکسیکو)۔ "قومی نمبرنگ پلان۔" آئی ایف ٹی میکسیکو

  6. گوگل کی لائبریری libphonenumber۔ "فون نمبر پارسنگ، فارمیٹنگ، اور توثیق۔" گٹ ہب ریپوزٹری

  7. عالمی ٹیلیفون نمبرنگ گائیڈ۔ "بین الاقوامی ڈائلنگ کوڈز اور معلومات۔" ڈبلیو ٹی این جی

ٹیسٹ فون نمبرز جنریٹ کرنا شروع کریں

کیا آپ اپنے اگلے ٹیسٹنگ سیشن کے لیے درست فون نمبرز چاہتے ہیں؟ اپنا ملک منتخب کریں، موبائل یا لینڈ لائن کا انتخاب کریں، اور ایسے فارمیٹ شدہ نمبرز جنریٹ کریں جو حقیقی دنیا کے پیٹرن پر پورے اترتے ہوں۔ یہ ٹول بین الاقوامی معیارات کی پیچیدگی کو سنبھالتا ہے جبکہ انٹرفیس کو سادہ رکھتا ہے - کوئی اکاؤنٹ نہیں، کوئی API کلید نہیں، صرف فوری نتائج۔

ڈویلپرز کے لیے بہترین جو ویلیڈیشن لاجک کی جانچ کر رہے ہیں، QA ٹیموں کے لیے جو ٹیسٹ ماحول کو بھر رہی ہیں، یا کوئی بھی جسے حقیقت پسند فون نمبر کی مثالوں کی ضرورت ہے۔