फोन नंबर जनरेटर और वैलिडेटर - किसी भी देश के लिए टेस्ट नंबर
अमेरिका, यूके, मेक्सिको, भारत के लिए वैध टेस्ट फोन नंबर जनरेट करें। उचित स्वरूपण के साथ मोबाइल या लैंडलाइन नंबर बनाएं। डेवलपर्स के लिए मुफ्त टूल जो वैलिडेशन लॉजिक का परीक्षण कर रहे हैं।
फोन नंबर जनरेटर और वैलिडेटर
दस्तावेज़ीकरण
फोन नंबर जनरेशन का महत्व
फोन वैलिडेशन लॉजिक का परीक्षण करना कठिन हो सकता है। आपको देश-विशिष्ट पैटर्न का पालन करने वाले यथार्थवादी नंबरों की आवश्यकता होती है, लेकिन मैन्युअल रूप से टेस्ट डेटा बनाना थकाऊ और त्रुटि-प्रवण होता है। यह टूल उस समस्या को हल करता है जो कई देशों के लिए संरचनात्मक रूप से वैध फोन नंबर उत्पन्न करके—उचित क्षेत्र कोड, मोबाइल उपसर्ग और स्वरूपण के साथ।
चाहे आप एक संपर्क फॉर्म बना रहे हों, एक एसएमएस एपीआई का परीक्षण कर रहे हों, या एक विकास डेटाबेस भर रहे हों, आपको वास्तविक दुनिया के प्रारूपों से मेल खाने वाले नंबर मिलेंगे। टूल अंतरराष्ट्रीय मानकों (जैसे ई.164) की जटिलता को संभालता है, जबकि इंटरफ़ेस को सरल रखता है: एक देश चुनें, मोबाइल या लैंडलाइन चुनें, और उत्पन्न करें।
यह यादृच्छिक अंक जनरेटर से क्या अलग है? यह नियमों का सम्मान करता है। मैक्सिकन मोबाइल नंबरों को उचित क्षेत्र कोड मिलते हैं (मैक्सिको सिटी के लिए 55, गुआडलाजारा के लिए 33)। अमेरिकी नंबर अमान्य पैटर्न से बचते हैं जैसे 0 या 1 से शुरू होने वाले क्षेत्र कोड। यूके के मोबाइल नंबर 7 से शुरू होते हैं। ये विवरण महत्वपूर्ण हैं जब आप उस वैलिडेशन लॉजिक का परीक्षण कर रहे हों जिसका उपयोगकर्ता उत्पादन में अनुभव करेंगे।
फोन नंबर जनरेटर कैसे काम करता है
सरल इंटरफ़ेस के पीछे, जनरेटर वैध फोन नंबर बनाने के लिए देश-विशिष्ट नियमों को लागू करता है:
-
देश और क्षेत्र चयन: अपना लक्षित देश और क्षेत्र चुनें। यह एरिया कोड निर्धारित करता है—उदाहरण के लिए, मेक्सिको में "CDMX" चुनने पर स्वचालित रूप से 55 एरिया कोड का उपयोग होता है।
-
नंबर प्रकार तर्क: मोबाइल और लैंडलाइन नंबर अलग-अलग पैटर्न का पालन करते हैं। यूके में, मोबाइल 7 से शुरू होते हैं, जबकि लैंडलाइन लंदन जैसे भौगोलिक कोड 20 का उपयोग करते हैं। टूल आपके चयन के आधार पर सही उपसर्ग लागू करता है।
-
यादृच्छिक अंक उत्पन्न करना: सब्सक्राइबर नंबरों के लिए, टूल वैध सीमाओं के भीतर यादृच्छिक अंक उत्पन्न करता है। सभी अंक हर जगह काम नहीं करते—अमेरिकी एरिया कोड 0 या 1 से शुरू नहीं हो सकते, और कुछ कोड सेवाओं के लिए आरक्षित हैं।
-
प्रारूप लागू करना: नंबरों को E.164 मानकों (अंतर्राष्ट्रीय) या स्थानीय परंपराओं के अनुसार स्वरूपित किया जाता है। मैक्सिकन नंबर अंतर्राष्ट्रीय स्तर पर "+52 55 1234 5678" या स्थानीय रूप से "55 1234 5678" के रूप में दिखाई देते हैं।
-
सत्यापन: प्रत्येक उत्पन्न नंबर को उस देश के लिए विशिष्ट रेगेक्स पैटर्न के खिलाफ जांचा जाता है। यह संरचनात्मक त्रुटियों को प्रदर्शित होने से पहले पकड़ता है।
जो आप नहीं देखेंगे: टूल जानबूझकर आपातकालीन नंबरों (जैसे 911), परीक्षण सीमाओं और विशेष सेवा कोड से बचता है। यह परीक्षण वातावरण में आउटपुट को सुरक्षित बनाता है जहां आप वास्तविक सेवाओं को अनजाने में ट्रिगर नहीं करना चाहते।
सूत्र और एल्गोरिदम
फोन नंबर उत्पन्न करना एक सरल यादृच्छिक प्रक्रिया जैसा लग सकता है, लेकिन इसे सही तरीके से लागू करने के लिए गणितीय बाधाओं और पैटर्न को समझना आवश्यक है जो विभिन्न क्षेत्रों में फोन नंबरों को वैध बनाते हैं।
यादृच्छिक संख्या उत्पन्न करने का एल्गोरिदम
एक वैध फोन नंबर उत्पन्न करने का मूल एल्गोरिदम इस सूत्र का पालन करता है:
जहाँ:
- पूर्ण फोन नंबर है
- देश कोड है (स्थानीय प्रारूप के लिए वैकल्पिक)
- क्षेत्र/क्षेत्र कोड है
- उपसर्ग है (जिसमें नंबर के प्रकार के आधार पर बाधाएं हो सकती हैं)
- सब्सक्राइबर नंबर है (यादृच्छिक अंक)
सत्यापन एल्गोरिदम
फोन नंबरों का सत्यापन एक नियमित अभिव्यक्ति पैटर्न मिलान संचालन के रूप में व्यक्त किया जा सकता है, जिसे गणितीय रूप से इस प्रकार दर्शाया जा सकता है:
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 एरिया कोड मिलता है - वही कोड जो वास्तविक मैक्सिकन नंबरों में उपयोग होता है। यह सटीकता महत्वपूर्ण है जब एप्लिकेशन जो नंबरों को पार्स या मान्य करते हैं। ### अंतर्राष्ट्रीय बनाम स्थानीय प्रारूप टॉगल दो मानक प्रतिनिधित्वों के बीच स्विच करें: - **अंतर्राष्ट्रीय (ई.164)**: +52 55 1234 5678 - एपीआई, डेटाबेस और वैश्विक सिस्टम के लिए उपयोग किया जाता है - **स्थानीय**: 55 1234 5678 - उपयोगकर्ता अपने देश में नंबर कैसे देखते हैं **यह महत्वपूर्ण क्यों है**: आपका एप्लिकेशन किसी भी प्रारूप में नंबर प्राप्त कर सकता है। मेक्सिको में उपयोगकर्ता स्थानीय प्रारूप टाइप करते हैं, लेकिन अंतर्राष्ट्रीय उपयोगकर्ता देश कोड शामिल करते हैं। दोनों का परीक्षण यह सुनिश्चित करता है कि आपका मान्यकरण वास्तविक दुनिया के इनपुट को संभाल सकता है। ### मोबाइल और लैंडलाइन अंतर उपयुक्त उपसर्ग के साथ मोबाइल या लैंडलाइन नंबर उत्पन्न करें: - **मोबाइल**: यूके के नंबर 7 से शुरू होते हैं, ऑफकॉम नियमों का पालन करते हुए - **लैंडलाइन**: विशिष्ट शहरों से जुड़े भौगोलिक कोड (लंदन का 20, दिल्ली का 11) अंतर तकनीकी है, केवल सौंदर्य संबंधी नहीं। मोबाइल और लैंडलाइन नंबर एक ही देश के भीतर अलग-अलग नंबरिंग योजनाओं का पालन करते हैं। आपकी मान्यकरण तर्क को दोनों को पहचानने की आवश्यकता है। ### एक-क्लिक कॉपी अपने क्लिपबोर्ड में उत्पन्न नंबरों को तुरंत जोड़ने के लिए कॉपी बटन पर क्लिक करें। कोई मैनुअल चयन या हाइलाइट करने की आवश्यकता नहीं - बस क्लिक करें और अपने टेस्ट स्क्रिप्ट, एसक्यूएल इनसर्ट या फॉर्म फील्ड में पेस्ट करें। ## फोन नंबर प्रारूप मानक ### ई.१६४ को समझना: वैश्विक मानक [ई.१६४ मानक](https://www.itu.int/rec/T-REC-E.164/en), अंतर्राष्ट्रीय दूरसंचार संघ द्वारा रखरखाव किया जाता है, यह परिभाषित करता है कि फोन नंबर वैश्विक स्तर पर कैसे काम करते हैं। 1984 में स्थापित और आज भी उपयोग में, इसने मौलिक नियम निर्धारित किए: - **अधिकतम 15 अंक** कुल (देश कोड सहित) - **प्लस साइन उपसर्ग** (+) अंतर्राष्ट्रीय प्रारूप के लिए - **कोई विशेष वर्ण नहीं** वास्तविक नंबर में (स्पेस और हाइफ़न केवल प्रदर्शन के लिए हैं) प्रारूप संरचना: +[देश कोड] [राष्ट्रीय नंबर] डेवलपर्स के लिए महत्व: डेटाबेस में फोन नंबर संग्रहित करते समय, ई.१६४ प्रारूप का उपयोग करें। यह स्पष्ट, पार्सेबल और किसी भी दूरसंचार एपीआई के साथ काम करता है। "+15551234567" जैसा एक नंबर सार्वभौमिक रूप से समझा जाता है, जबकि "(555) 123-4567" को अमेरिकी नंबर होने के लिए संदर्भ की आवश्यकता होती है। <svg width="600" height="200" xmlns="http://www.w3.org/2000/svg"> <title>फोन नंबर प्रारूप संरचना</title> <desc>अंतर्राष्ट्रीय फोन नंबर प्रारूप के घटकों को दर्शाने वाला आरेख</desc> <!-- Background --> <rect x="10" y="50" width="580" height="80" fill="#f8fafc" stroke="#64748b" strokeWidth="2" rx="5" /> <!-- Country Code Section --> <rect x="20" y="60" width="80" height="60" fill="#dbeafe" stroke="#3b82f6" strokeWidth="2" rx="5" /> <text x="60" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#1e40af">+52</text> <text x="60" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#1e40af">देश कोड</text> <!-- Area Code Section --> <rect x="110" y="60" width="80" height="60" fill="#e0f2fe" stroke="#0ea5e9" strokeWidth="2" rx="5" /> <text x="150" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#0369a1">55</text> <text x="150" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#0369a1">क्षेत्र कोड</text> <!-- First Part Section --> <rect x="200" y="60" width="120" height="60" fill="#f0fdfa" stroke="#14b8a6" strokeWidth="2" rx="5" /> <text x="260" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#0f766e">1234</text> <text x="260" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#0f766e">अबोनेंट नंबर (भाग 1)</text> <!-- Second Part Section --> <rect x="330" y="60" width="120" height="60" fill="#ecfdf5" stroke="#10b981" strokeWidth="2" rx="5" /> <text x="390" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#047857">5678</text> <text x="390" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#047857">अबोनेंट नंबर (भाग 2)</text> <!-- Arrows --> <line x1="100" y1="90" x2="110" y2="90" stroke="#64748b" strokeWidth="2" /> <line x1="190" y1="90" x2="200" y2="90" stroke="#64748b" strokeWidth="2" /> <line x1="320" y1="90" x2="330" y2="90" stroke="#64748b" strokeWidth="2" /> <!-- Title --> <text x="300" y="30" fontFamily="Arial" fontSize="16" fontWeight="bold" textAnchor="middle" fill="#334155">अंतर्राष्ट्रीय फोन नंबर प्रारूप (मेक्सिको उदाहरण)</text> </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 अंक प्लस एसटीडी कोड - प्रारूप: +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(`Is valid: ${validateMexicanPhoneNumber(phoneNumber)}`); // Is valid: 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"Is valid: {validate_us_phone_number(phone)}") # Is valid: 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("Is valid: " + validateUKMobileNumber(phoneNumber)); // Is valid: 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 "Is valid: " . (validateIndianMobileNumber($phoneNumber) ? "true" : "false") . "\n"; // Is valid: 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($"Is valid: {ValidateMexicanPhoneNumber(phoneNumber)}"); // Is valid: True
44 }
45}
46फोन नंबर जनरेशन के वास्तविक दुनिया के उपयोग के मामले
फॉर्म वैलिडेशन लॉजिक का परीक्षण
जब रजिस्ट्रेशन फॉर्म बनाते हैं, तो आपको यह सत्यापित करने की आवश्यकता होती है कि वैलिडेशन गलत स्वरूप के नंबरों को पकड़ ले बिना वैध नंबरों को अस्वीकार न करे। यहाँ जो आमतौर पर होता है: डेवलपर्स "555-1234" या "123456789" जैसे सरल पैटर्न के साथ परीक्षण करते हैं, जो किनारे के मामलों को नहीं दर्शाते।
एक सामान्य परिदृश्य अंतर्राष्ट्रीय उपयोगकर्ता पंजीकरण है। आपका फॉर्म अमेरिकी नंबरों को पूर्ण रूप से स्वीकार कर सकता है लेकिन भौगोलिक कोड की परिवर्तनशील लंबाई के कारण यूके के नंबरों में विफल हो सकता है। देश-विशिष्ट नंबर उत्पन्न करके, आप इन मुद्दों को उपयोगकर्ताओं की रिपोर्ट से पहले पकड़ सकते हैं।
प्रो टिप: प्रत्येक देश के लिए 50-100 नंबर उत्पन्न करें और अपने वैलिडेटर से उन्हें चलाएं। आप जल्दी से अपने रेगेक्स पैटर्न में अंतराल ढूंढ लेंगे।
विकास डेटाबेस को भरना
मेरे बड़े डेटासेट के साथ काम करने के अनुभव में, वास्तविक परीक्षण डेटा यूआई बग्स को पकड़ने में बड़ा अंतर लाता है। जब आपकी ग्राहक तालिका में 10,000 प्रविष्टियाँ "555-5555" दिखा रही हों, तो आप नहीं देखेंगे कि फोन कॉलम अंतर्राष्ट्रीय प्रारूप "+44 7700 123456" के लिए पर्याप्त चौड़े नहीं हैं।
जो अच्छा काम करता है: विविध नंबर उत्पन्न करें (विभिन्न देश, मोबाइल/लैंडलाइन मिश्रण) जो आपके उत्पादन वितरण से मेल खाते हों। यदि आपके उपयोगकर्ताओं का 70% मेक्सिको में हैं, तो अपने परीक्षण डेटा का 70% मेक्सिकी नंबर बनाएं। यह प्रदर्शन समस्याओं, क्रमबद्धता समस्याओं और निर्यात स्वरूपण त्रुटियों को प्रकट करता है जिन्हें आप अन्यथा चूक जाते।
एपीआई एकीकरण परीक्षण
एसएमएस या वॉइस एपीआई का परीक्षण करने के लिए फोन नंबरों की आवश्यकता होती है, लेकिन आप विकास में वास्तविक ग्राहक डेटा का उपयोग नहीं कर सकते। सेवा प्रदाता जैसे ट्विलियो परीक्षण नंबर प्रदान करते हैं, लेकिन वे सीमित हैं। व्यापक परीक्षण के लिए - विशेष रूप से दर सीमा, बैच प्रसंस्करण और त्रुटि संचालन - आपको मात्रा की आवश्यकता होती है।
एक सामान्य गलती: केवल अपने फोन नंबर के साथ परीक्षण करना। यह विभिन्न प्रारूपों या अंतर्राष्ट्रीय नंबरों में समस्याओं को नहीं दर्शाएगा। अपने लक्षित बाजारों से मेल खाने वाले नंबरों का एक सेट उत्पन्न करें, और आप उत्पादन में पहुंचने से पहले स्वरूपण त्रुटियों को पकड़ लेंगे।
शैक्षिक और डेमो वातावरण
जब सीआरएम सिस्टम पर कर्मचारियों को प्रशिक्षित करते हैं या ग्राहकों को सॉफ्टवेयर प्रदर्शित करते हैं, तो आपको ऐसे डेटा की आवश्यकता होती है जो वास्तविक दिखता हो बिना वास्तविक ग्राहक जानकारी को उजागर किए। "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 के दशक-वर्तमान)
वॉयस ओवर IP (VoIP) और इंटरनेट-आधारित संचार के उदय के साथ, फोन नंबर प्रारूप अधिक लचीले हो गए हैं। E.164 मानक को इन नई प्रौद्योगिकियों को समायोजित करने के लिए अनुकूलित किया गया है, और कई देशों ने अधिक क्षमता बनाने के लिए अपनी नंबरिंग योजनाओं में संशोधन किया है।
कई देशों में नंबर पोर्टेबिलिटी की शुरुआत ने मोबाइल और लैंडलाइन नंबरों के बीच की पहचान को और धुंधला कर दिया है, क्योंकि उपयोगकर्ता अब सेवा प्रकारों के बीच बदलते समय अपने नंबर रख सकते हैं।
आज, फोन नंबर प्रारूप लगातार विकसित हो रहे हैं, कुछ देश एरिया कोड को समाप्त करने या फोन नंबरों को डिजिटल पहचान के साथ एकीकृत करने पर विचार कर रहे हैं। हालांकि, E.164 द्वारा स्थापित मूल संरचना वैश्विक दूरसंचार नंबरिंग की नींव बनी हुई है।
अक्सर पूछे जाने वाले प्रश्न
मैं परीक्षण के लिए एक यादृच्छिक फोन नंबर कैसे उत्पन्न करूं?
अपने लक्षित देश और क्षेत्र को ड्रॉपडाउन से चुनें, मोबाइल या लैंडलाइन फॉर्मेट के बीच टॉगल करें, और "फोन नंबर उत्पन्न करें" पर क्लिक करें। टूल उस देश के फॉर्मेटिंग नियमों का पालन करते हुए एक संरचनात्मक रूप से वैध नंबर बनाता है। आप अंतर्राष्ट्रीय फॉर्मेट (+देश कोड के साथ) और स्थानीय फॉर्मेट के बीच टॉगल कर सकते हैं।
कई परिदृश्यों का परीक्षण करने के लिए, विभिन्न सेटिंग्स के साथ कई नंबर उत्पन्न करें—यह विशिष्ट फॉर्मेट के साथ दिखाई देने वाली सत्यापन त्रुटियों को पकड़ने में मदद करता है।
क्या ये वास्तविक फोन नंबर हैं जो कॉल या टेक्स्ट प्राप्त कर सकते हैं?
नहीं। उत्पन्न किए गए नंबर सही फॉर्मेटिंग पैटर्न का पालन करते हैं लेकिन यादृच्छिक रूप से बनाए गए हैं और वास्तविक ग्राहकों को नहीं दिए गए हैं। ये सत्यापन तर्क, डेटाबेस को भरने और सॉफ्टवेयर को प्रदर्शित करने के लिए डिज़ाइन किए गए हैं—वास्तविक दूरसंचार के लिए नहीं।
महत्वपूर्ण: इन नंबरों पर वास्तविक कॉल या टेक्स्ट करने का प्रयास कभी न करें। ये वास्तविक लोगों के हो सकते हैं या असाइन नहीं किए गए हो सकते हैं।
अंतर्राष्ट्रीय और स्थानीय फोन नंबर फॉर्मेट में क्या अंतर है?
अंतर्राष्ट्रीय फॉर्मेट में प्लस साइन के साथ देश कोड शामिल होता है: +52 55 1234 5678 (मेक्सिको)। यह वैश्विक दूरसंचार के लिए E.164 मानक है।
स्थानीय फॉर्मेट दिखाता है कि उस देश में कैसे डायल किया जाता है: 55 1234 5678 (मेक्सिको)। यह देश कोड को छोड़ देता है क्योंकि घरेलू कॉल के लिए इसकी आवश्यकता नहीं होती।
अंतर्राष्ट्रीय उपयोगकर्ताओं की सेवा करने वाले एप्लिकेशन का परीक्षण करते समय, दोनों फॉर्मेट को सत्यापित करें। उपयोगकर्ता नंबर असंगत रूप से दर्ज करते हैं—कुछ "+1 555..." पेस्ट करते हैं, अन्य "(555)..." टाइप करते हैं। एक मजबूत सत्यापनकर्ता दोनों को संभालता है।
अलग-अलग देशों में फोन नंबर फॉर्मेट अलग-अलग क्यों होते हैं?
प्रत्येक देश ने अपनी संख्या योजना स्वतंत्र रूप से विकसित की, जो जनसंख्या के आकार, भौगोलिक विभाजन और उनके टेलीफोन बुनियादी ढांचे के निर्माण के समय से प्रभावित हुई। अमेरिका ने 1947 में उत्तरी अमेरिकी नंबरिंग योजना को 3-3-4 अंक के पैटर्न के साथ अपनाया। यूके परिवर्तनशील-लंबाई वाले भौगोलिक कोड का उपयोग करता है। भारत ने अपनी विशाल जनसंख्या को समायोजित करने के लिए 10 अंकों के मोबाइल नंबरों को मानकीकृत किया।
अंतर्राष्ट्रीय दूरसंचार संघ का E.164 मानक एक ढांचा प्रदान करता है, लेकिन देश अपनी आवश्यकताओं के आधार पर इसे अलग-अलग तरीके से लागू करते हैं। इसीलिए फोन सत्यापन जटिल है—आप सभी देशों के लिए एक ही regex पैटर्न का उपयोग नहीं कर सकते।
(अनुवाद जारी...)
संदर्भ
-
अंतर्राष्ट्रीय दूरसंचार संघ (ITU). "E.164: अंतर्राष्ट्रीय सार्वजनिक दूरसंचार संख्या योजना." ITU
-
उत्तर अमेरिकी नंबरिंग योजना प्रशासन. "उत्तर अमेरिकी नंबरिंग योजना के बारे में." NANPA
-
ऑफकॉम (यूके). "टेलीफोन नंबर - राष्ट्रीय टेलीफोन नंबरिंग योजना." Ofcom
-
दूरसंचार विभाग, भारत सरकार. "राष्ट्रीय नंबरिंग योजना." DoT India
-
संघीय दूरसंचार संस्थान (मेक्सिको). "राष्ट्रीय नंबरिंग योजना." IFT Mexico
-
गूगल की libphonenumber लाइब्रेरी. "फोन नंबर पार्सिंग, फॉर्मेटिंग, और सत्यापन." GitHub Repository
-
विश्व टेलीफोन नंबरिंग गाइड. "अंतर्राष्ट्रीय डायलिंग कोड और जानकारी." WTNG
टेस्ट फोन नंबर उत्पन्न करना शुरू करें
अपने अगले परीक्षण सत्र के लिए वैध फोन नंबर की आवश्यकता है? अपना देश चुनें, मोबाइल या लैंडलाइन का चयन करें, और वास्तविक दुनिया के पैटर्न का पालन करने वाले सही प्रारूपित नंबर उत्पन्न करें। टूल अंतरराष्ट्रीय मानकों की जटिलता को संभालता है, जबकि इंटरफ़ेस को सरल रखता है - कोई खाता नहीं, कोई API कुंजी नहीं, बस तत्काल परिणाम।
डेवलपर्स के लिए वैधीकरण तर्क का परीक्षण करने, QA टीमों के लिए परीक्षण वातावरण भरने, या वास्तविक फोन नंबर के उदाहरणों की आवश्यकता वाले किसी भी व्यक्ति के लिए बिल्कुल सही।