एक वैध अंतरराष्ट्रीय फोन नंबर की न्यूनतम लंबाई क्या है?


147

मुझे एक अंतरराष्ट्रीय फोन नंबर के उपयोगकर्ता इनपुट को मान्य करने की आवश्यकता है। E.164 के अनुसार , अधिकतम लंबाई 15 अंक है, लेकिन मुझे न्यूनतम के बारे में कोई जानकारी नहीं मिल पा रही थी। मैं केवल अंकों को मानता हूं, कोई प्लस चिह्न या विभाजक नहीं।


अच्छा प्रश्न। क्या आप उस का जवाब खोजने में सक्षम थे?
शोभित पुरी

1
लिंक से पता चलता है कि न्यूनतम 7 है
लोरेंसकेन

जवाबों:


122

विभिन्न स्रोतों के अनुसार, मुझे लगता है कि E-164 प्रारूप में न्यूनतम लंबाई एक देश से दूसरे देश पर निर्भर करती है। उदाहरण के लिए:

  • इज़राइल के लिए : न्यूनतम फोन नंबर की लंबाई (देश कोड को छोड़कर) 8 अंक है। - आधिकारिक स्रोत (देश कोड 972)
  • स्वीडन के लिए : न्यूनतम संख्या की लंबाई (देश कोड को छोड़कर) 7 अंक है। - आधिकारिक स्रोत (देश कोड 46)

  • सोलोमन द्वीप के लिए फिक्स्ड लाइन फोन के लिए इसके 5। - स्रोत (देश कोड 677)

... और इसी तरह। इसलिए देश कोड सहित, न्यूनतम लंबाई स्वीडन के लिए 9 अंक और इजरायल के लिए 11 और सोलोमन द्वीप के लिए 8 अंक है।

संपादित करें (क्लीन सॉल्यूशन) : दरअसल, लंबाई आदि की अलग-अलग जांच करके एक अंतरराष्ट्रीय फोन नंबर को मान्य करने के बजाय, आप Google की लिबफ़ोनोम्बर लाइब्रेरी का उपयोग कर सकते हैं । यह E164 प्रारूप में सीधे फोन नंबर को मान्य कर सकता है। यह सब कुछ ध्यान में रखेगा और आपको देश को देने की आवश्यकता नहीं है यदि संख्या वैध E164 प्रारूप में है। यह बहुत अच्छा है! एक उदाहरण लेते हुए:

String phoneNumberE164Format = "+14167129018"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
    PhoneNumber phoneNumberProto = phoneUtil.parse(phoneNumberE164Format, null);
    boolean isValid = phoneUtil.isValidNumber(phoneNumberProto); // returns true if valid
    if (isValid) {
        // Actions to perform if the number is valid
    } else {
        // Do necessary actions if its not valid 
    }
} catch (NumberParseException e) {
    System.err.println("NumberParseException was thrown: " + e.toString());
}

यदि आप उस देश को जानते हैं जिसके लिए आप संख्याओं को मान्य कर रहे हैं, तो आपको E164 प्रारूप की भी आवश्यकता नहीं है और देश .parseको पारित होने के बजाय कार्य में निर्दिष्ट कर सकता है null


OMG, वह सप्ताह पहले Google लिंक कहां था! :-) धन्यवाद!
एएमएम

हां, मैंने इसे हाल ही में अपडेट किया है। विलंब के लिए क्षमा चाहते हैं। आशा करता हूँ की ये काम करेगा।
शोभित पुरी

@ शोभितपुरी मुझे लगता है कि Google की लाइब्रेरी भी कहती है कि "2222" एक वैध संख्या है, इसलिए शायद जाँच के लिए न्यूनतम लंबाई होनी चाहिए।
एंड्रॉयड डेवलपर

@androiddeveloper मैंने libphonenumber.appspot.com पर आपका उपरोक्त नंबर आज़माया। लेकिन इसने कहा कि यह संभव संख्या नहीं है। आपने किस देश कोड के साथ उस नंबर को आज़माया है? इसके अलावा दो कार्य हैं: एक जो इसकी संभावित संख्या की जाँच करता है और दूसरा जो इसकी वैधता की जाँच करता है। मुझे नहीं लगता कि हमें लंबाई की जाँच की आवश्यकता है।
शोभित पुरी

दरअसल जब मैं कोशिश करता हूं कि इज़राइल देश कोड के साथ, यह वैध दिखाता है। शायद आप संख्या प्रकारों की जांच कर सकते हैंgetPhoneTypeलगता है कि यूएएन वापस आ गया। तो यह 2222 नंबर UAN है। लेकिन यूनिवर्सल एक्सेस नंबर भी लंबे हो सकते हैं। तकनीकी रूप से यह मान्य संख्या लगती है। तो या तो आप अपने नंबर पर फोन नंबर टाइप कर सकते हैं या न्यूनतम लंबाई देख सकते हैं।
शोभित पुरी

15

EDIT 2015-06-27: न्यूनतम वास्तव में देश कोड सहित 8 है। मेरी गलती।

मूल पोस्ट

मेरे द्वारा उपयोग किया जाने वाला न्यूनतम फ़ोन नंबर 10 अंकों का है। अंतर्राष्ट्रीय उपयोगकर्ताओं को हमेशा अपना देश कोड डालना चाहिए, और जहां तक ​​मुझे पता है कि यदि आप देश कोड की गणना करते हैं तो दस अंकों से कम वाले देश नहीं हैं।

अधिक जानकारी यहाँ: https://en.wikipedia.org/wiki/Telephone_numbering_plan


12
सुलैमान द्वीप समूह में देश कोड ( en.wikipedia.org/wiki/Telephone_numbers_in_the_Solomon_Islands ) सहित 8 हो सकते हैं
टॉम हर्ड

धन्यवाद @TomHeard - मेरी पोस्ट संशोधित!
जामुन होल्मग्रेन

10

सेंट हेलेना के लिए न्यूनतम लंबाई 4 है (प्रारूप: +290 XXXX) और नीयू (प्रारूप: +683 XXXX)।


3
सेंट हेलेना 5 अंकों में बदल गया (देश कोड को छोड़कर) - en.wikipedia.org/wiki/…
Cheok Yan Cheng

4
En.wikipedia.org/wiki/Telephone_numbers_in_Niue के अनुसार , नीयू में देश कोड सहित केवल 7 अंक हैं।
13
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.