जावास्क्रिप्ट के साथ फोन नंबर मान्य करें


143

मुझे यह कोड कुछ वेबसाइट में मिला, और यह पूरी तरह से काम करता है। यह पुष्टि करता है कि फ़ोन नंबर इन स्वरूपों में से एक में है:
(123) 456-7890 या 123-456-7890

समस्या यह है कि मेरे ग्राहक (मुझे नहीं पता, शायद ग्राहक सामान) एक और प्रारूप, दस संख्याओं को लगातार जोड़ना चाहता है, कुछ इस तरह से: 1234567890

मैं इस नियमित अभिव्यक्ति का उपयोग कर रहा हूँ,

/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/

मैं कैसे जोड़ सकता हूं कि यह दूसरे प्रारूप को भी मान्य करता है? मैं नियमित अभिव्यक्ति के साथ अच्छा नहीं हूं।



5
अंगूठे के एक नियम के रूप में - फोन नंबरों को मान्य करने की कोशिश विफल हो जाती है। विभिन्न देशों और विस्तार में विभिन्न संरचनाओं के साथ क्या है, इसकी एक बहुत ही कठिन समस्या है।
क्वेंटिन

1
और जैसे कि फ्रांसीसी संकेतन के बारे में क्या? "12 34 56 78 90" बस संख्याओं को छोड़कर सब कुछ हटा दें (शुरुआत में एक प्लस चिह्न को छोड़कर) और लंबाई की जांच करें।
thejh

आपको वास्तव में, फ़ोन नंबरों को ठीक से सत्यापित करने के लिए नियमित अभिव्यक्तियों का उपयोग नहीं करना चाहिए
डैन डस्केल्सस्कु

जवाबों:


122

सबसे पहले, आपका प्रारूप सत्यापनकर्ता केवल NANP (देश कोड +1) संख्याओं के लिए उपयुक्त है। क्या आपके आवेदन का उपयोग उत्तरी अमेरिका के बाहर के किसी फोन नंबर वाले व्यक्ति द्वारा किया जाएगा? यदि हां, तो आप उन लोगों को पूरी तरह से वैध [अंतरराष्ट्रीय] नंबर दर्ज करने से नहीं रोकना चाहते हैं।

दूसरे, आपका सत्यापन गलत है। NANP नंबर उस फॉर्म को लेते हैं NXX NXX XXXXजहां Nएक अंक 2-9 है और Xएक अंक 0-9 है। इसके अतिरिक्त, एक गैर-भौगोलिक क्षेत्र कोड (800, 888, 877, 866, 855, 900) में संख्याओं को छोड़करN11 विशेष सेवाओं के साथ भ्रम से बचने के लिए क्षेत्र कोड और एक्सचेंज फॉर्म (दो वाले के साथ) नहीं ले सकते हैं ।N11

तो, आपका रेगेक्स नंबर (१२३) १२३ ४५६६ पास करेगा, भले ही वह वैध फोन नंबर न हो। आप की जगह है कि ठीक कर सकते हैं \d{3}के साथ [2-9]{1}\d{2}

अंत में, मुझे लगता है कि आप वेब ब्राउज़र में उपयोगकर्ता इनपुट को मान्य कर रहे हैं। याद रखें कि क्लाइंट-साइड सत्यापन केवल एक सुविधा है जो आप उपयोगकर्ता को प्रदान करते हैं ; आपको अभी भी सर्वर पर सभी इनपुट (फिर से) को मान्य करने की आवश्यकता है।

टीएल; डीआर फोन नंबर या यूआरएल जैसे जटिल वास्तविक दुनिया डेटा को मान्य करने के लिए एक नियमित अभिव्यक्ति का उपयोग नहीं करते हैं । किसी विशेष पुस्तकालय का उपयोग करें ।


मैं मानता हूँ क्योंकि फोन नंबर-योजना वास्तव में श्रेणी के आधार पर काम करता है, जैसे 12300000 करने के लिए 12399999 (कि regex सत्यापित करें फोन नंबर के लिए पर्याप्त नहीं है numberingplans.com/... )

146

मेरी पसंद का अवशेष है:

/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im

मान्य प्रारूप:

(123) 456-7890
(123)456-7890
123-456-7890
123.456.7890
1234567890
+31636363634
075-63546725


3
/ Im क्या है? Google पर स्पष्टीकरण नहीं पा सकते :)
Sarin Suriyakoon

7
@SarinSuriyakoon iअभिव्यक्ति के मामले को असंवेदनशील बनाता है और mबहु-पंक्ति खोजों को निष्पादित करता है
रोड्रिगो लेईट

44
आपको संख्या के लिए केस-असंवेदनशील की आवश्यकता क्यों होगी?
सोलोमन क्लॉसन

1
यह रेगेक्स महान है क्योंकि यदि आप ^शुरुआत और $अंत में इसे हटाते हैं तो यह स्ट्रिंग्स के बीच में भी फोन नंबर पा सकते हैं
hobberwickey

2
@darioxlz '123456789' फोन नंबर के लिए एक वैध लंबाई नहीं है
punjabi4life

67

यदि आप 10 और केवल 10 अंकों की तलाश कर रहे हैं, तो सब कुछ अनदेखा करें लेकिन अंक-

   return value.match(/\d/g).length===10;

यह मैं सुझाव देने वाला था। बहुत आसान। और बहुत अधिक सत्यापन वैसे भी एक बुरी बात हो सकती है।
mwilcox

1
यह जाने का सबसे अच्छा तरीका है। जब तक आप वास्तव में परवाह नहीं करते हैं कि यह किस प्रारूप में है, यह सब करता है सुनिश्चित करें कि संख्या आंशिक रूप से वैध है, और जिबरिश का एक गुच्छा नहीं है।
mdance

7
आप मैच (/ \ d / g) से मेल नहीं खाते (/ \ d /) या लंबाई 1 होगी, 10 नहीं; इसके अलावा, एक खाली स्ट्रिंग पर मिलान शून्य है। बहुत कम से कम यह var m = value.match (/ \ d / g) होना चाहिए; वापसी m && m.length === 10
डग

या return (value.match(/\d/g) || []).length == 10बहुत सरल (लेकिन समान रूप से त्रुटिपूर्ण) return value.replace(/\D/g,'').length == 10:।
5

मुझे यह पसंद है /\D/gi.test(value):। सब कुछ है कि एक अंक नहीं है, जिसमें व्हाट्सएप, डैश आदि शामिल हैं ...
गस

33

मैं जो कुछ भी करता हूं वह प्रारूप को अनदेखा करता है और संख्यात्मक सामग्री को मान्य करता है:

var originalPhoneNumber = "415-555-1212";

function isValid(p) {
  var phoneRe = /^[2-9]\d{2}[2-9]\d{2}\d{4}$/;
  var digits = p.replace(/\D/g, "");
  return phoneRe.test(digits);
}

फ़ॉर्मेटिंग को नज़रअंदाज़ करने के बारे में सहमति दें। मोबाइल नंबरों के लिए XXXX XXX XXX जैसे स्पेस के साथ प्रस्तुत किया जाना बहुत ही आम बात है, लेकिन बिना स्पेस के इनपुट की आवश्यकता होती है, जैसे कि XXXXXXXXXX।
RobG

30
/^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/g

(123) 456-7890
+ (123) 456-7890
+ (123) -456-7890
+ (123) - 456-7890
+ (123) - 456-78-90
123-456-7890
123-456.7890
1234567890
+3163636363434
075-63546725

यह एक बहुत ही ढीला विकल्प है और मैं इसे इस तरह रखना पसंद करता हूं, ज्यादातर मैं इसे पंजीकरण रूपों में उपयोग करता हूं जहां उपयोगकर्ताओं को अपना फोन नंबर जोड़ने की आवश्यकता होती है। आमतौर पर उपयोगकर्ताओं को उन स्वरूपों से परेशानी होती है जो सख्त प्रारूपण नियमों को लागू करते हैं, मैं उपयोगकर्ता को संख्या में भरने और इसे प्रारूप में या डेटाबेस में सहेजने से पहले पसंद करता हूं। http://regexr.com/3c53v


3
regex को थोड़ा संशोधित करने के लिए उदाहरण के लिए उदाहरण के लिए +41 (79) 123 45 67(स्विटज़रलैंड):/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g
रिमिगियस स्टेलर

यह मेरे लिए बहुत अच्छा लगता है क्योंकि यह बहुत ज्यादा कड़ा नहीं है और लगता है कि यह सभी अंतर्राष्ट्रीय प्रारूपों को कवर करता है (और स्विटज़रलैंड फिक्स के लिए @RemigiusStalder धन्यवाद)
गेविन

यदि आपके पास एक जावा बैकएंड है, तो आप फोन नंबर को सामान्य कर सकते हैं, उदाहरण के लिए github.com/google/libphonenumber
Remigius Stalder

29

निम्नलिखित REGEX इनमें से किसी भी प्रारूप को मान्य करेगा:

(123) 456-7890
123-456-7890
123.456.7890
1234567890

/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/

3
आपको भागने की ज़रूरत है .या फिर यह एक मनमाना चरित्र से मेल खाएगा, आपके रेगेक्स को तोड़ देगा।
क्रिस्टोफ़

1
इससे मुझे सही दिशा मिली। धन्यवाद! दुर्भाग्य से यह अभिव्यक्ति मैच (1234567890 और 123) 4567890 से भी होगी। ^ ((([0-9] {3})) | ([0-9] {3})) [- \ s \।] [0-9] {3} [- \ s \।]? [०-९] {४} $ उस छोटी सी समस्या का ध्यान रखता है।
जो हॉकिन्स

15

मैं कुछ स्पष्ट का उपयोग करने का सुझाव दूंगा (विशेष रूप से यह सोचकर कि कोड को किसको बनाए रखना होगा) ... किस बारे में:

var formats = "(999)999-9999|999-999-9999|9999999999";
var r = RegExp("^(" +
               formats
                 .replace(/([\(\)])/g, "\\$1")
                 .replace(/9/g,"\\d") +
               ")$");

जहाँ regexp एक स्पष्ट टेम्पलेट से बनाया गया है? एक नया जोड़ना तब एक बिना दिमाग वाला होगा और ग्राहक भी हो सकता है कि वह "विकल्प" पृष्ठ में ऐसा करने में सक्षम हो।


15

इनमें से कोई भी फॉर्मार्ट कहां हो सकता है: 555-555-5555 (555)555-5555 (555) 555-5555 555 555 5555 5555555555 1 555 555 5555

function telephoneCheck(str) {
  var isphone = /^(1\s|1|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3})(\-|\s)?(\d{4})$/.test(str);
  alert(isphone);
}
telephoneCheck("1 555 555 5555");


अच्छा regexp, इस सवाल पर सबसे अच्छा जवाब देता है
जोएलबेटेटआर

9

इसे आज़माएं - इसमें अंतर्राष्ट्रीय प्रारूपों के लिए सत्यापन भी शामिल है।

/^[+]?(1\-|1\s|1|\d{3}\-|\d{3}\s|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3})(\-|\s)?(\d{4})$/g

यह regex निम्नलिखित प्रारूप को मान्य करता है:

  • (541) 754-3010 घरेलू
  • + 1-541-754-3010 इंटरनेशनल
  • 1-541-754-3010 अमेरिका में डायल किया गया
  • 001-541-754-3010 जर्मनी से डायल किया गया
  • 191 541 754 3010 फ्रांस से डायल किया गया

6

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

हालांकि यह पद पुराना है लेकिन मैं अपने अंतर्विरोध को छोड़ना चाहता हूं। ये स्वीकार किए जाते हैं: 5555555555 555-555-5555 (555)555-5555 1 (555) 555-5555 1 555 555 5555 1 555-555-5555 1 (555) 555-5555

ये स्वीकार नहीं किए जाते हैं:

555-5555 -> इस उपयोग को स्वीकार करने के लिए: ^\+?1?\s*?\(?(\d{3})?(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$

5555555 -> इस उपयोग को स्वीकार करने के लिए: ^\+?1?\s*?\(?(\d{3})?(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$

१ ५५५) ५५५-५५५५ १२३ ** और !! asdf # ५५५५५५५५ (६५५५५२२३६ 2) २ (-५-) ६२२-38३2२ ० ()))) ६२२-38३22१ ()))) ६२२-7३38२ २ 75५7 ६२7 -38०२ १० (7५ () ६२२। -7382 27576227382 (275) 76227382 2 (757) 6227382 2 (757) 622-7382 (555) 5 (55?) - 5555

यह वह कोड है जिसका मैंने उपयोग किया है:

function telephoneCheck(str) {
  var patt = new RegExp(/^\+?1?\s*?\(?\d{3}(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$/);
  return patt.test(str);
}

telephoneCheck("+1 555-555-5555");

इस रेगेक्स की एकमात्र समस्या यह है कि यह एक फोन स्ट्रिंग को केवल ')' या 'केवल एक' ('"(555-555-5555") के रूप में
मानता है

5

यह काम करेगा:

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

?चरित्र का प्रतीक है कि पूर्ववर्ती समूह मिलान किया जाना चाहिए शून्य या एक बार। समूह या (-|\s)तो एक -या एक |चरित्र से मेल खाएगा । ?अपने रेगेक्स में इस समूह की दूसरी घटना के बाद जोड़ना आपको 10 लगातार अंकों के अनुक्रम से मेल खाने की अनुमति देता है।



2

सभी के उत्तर बहुत अच्छे हैं, लेकिन यहाँ मुझे लगता है कि यह थोड़ा अधिक व्यापक है ...

यह एक ही पंक्ति में एक एकल संख्या के जावास्क्रिप्ट मैच उपयोग के लिए लिखा गया है:

^(?!.*911.*\d{4})((\+?1[\/ ]?)?(?![\(\. -]?555.*)\( ?[2-9][0-9]{2} ?\) ?|(\+?1[\.\/ -])?[2-9][0-9]{2}[\.\/ -]?)(?!555.?01..)([2-9][0-9]{2})[\.\/ -]?([0-9]{4})$

यदि आप शब्द सीमाओं से मेल खाना चाहते हैं, तो बस ^ और $ to \ b बदलें

मैं इस समाधान के किसी भी सुझाव, सुधार, या आलोचना का स्वागत करता हूं। जहां तक ​​मैं बता सकता हूं, यह एनएएनपी प्रारूप से मेल खाता है (यूएसए संख्या के लिए - मैंने इसे बनाते समय अन्य उत्तर अमेरिकी देशों को मान्य नहीं किया था), किसी भी 911 त्रुटियों से बचा जाता है (क्षेत्र कोड या क्षेत्र कोड में नहीं हो सकता), समाप्त करता है। केवल वे ५५५ नंबर जो वास्तव में अमान्य हैं (५५५ का क्षेत्र कोड जिसके बाद ०१ एक्सएक्सएक्स जहां एक्स = किसी भी संख्या है)।


1

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

?चरित्र का प्रतीक है कि पूर्ववर्ती समूह मिलान किया जाना चाहिए शून्य या एक बार। समूह या (-|\s)तो एक -या एक |चरित्र से मेल खाएगा ।


1

मुझे इस बात से सहमत होना होगा कि फोन नंबरों को मान्य करना एक मुश्किल काम है। इस विशिष्ट समस्या के लिए मैं रेगेक्स को बदलूंगा

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)\d{4}$/

सेवा

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

केवल एक और तत्व जो अनावश्यक हो जाता है वह अंतिम डैश / स्पेस है।


मैं वास्तव में अपने रेगेक्स खेल को बढ़ाने की कोशिश कर रहा हूँ! मैं "रेगेक्स कोच" का उपयोग करके आपके सुझाव की जांच कर रहा हूं। मैं regex (()? \ D {3} ()) का उपयोग कर रहा हूं? (- (। \ _ S)? \ D {3} (- - \ s)? \ D {4} और लक्ष्य स्ट्रिंग (123) 456-7890 लेकिन किसी कारण से यह केवल पिछले 7 अंकों को हथियाने वाला है। कोई विचार?
हारून हैथवे

हां रेगेक्स दिमाग पर थोड़ा मोटा है ... और धैर्य। Ok try / ^ [] (? (\ D {3})]]? - [? | \ S]? (\ D {3}) [- | \ s]? (\ D {4}) $ / पुराने रेगेक्स के पहले भाग ने अच्छा प्रदर्शन नहीं किया: "()? (डी? {3} ())" () मध्य पेरेंटेसिस को वास्तव में रेक्सएक्स सिंटैक्स के हिस्से के रूप में देखा गया था और न कि पात्रों की तलाश की जा रही थी।
ल्यूक वर्न्यूऊ

1

यदि आप इस कोड से इनपुट टैग का उपयोग कर रहे हैं तो आपको मदद मिलेगी। मैं इस कोड को स्वयं लिखता हूं और मुझे लगता है कि यह इनपुट में उपयोग करने का बहुत अच्छा तरीका है। लेकिन आप इसे अपने प्रारूप का उपयोग करके बदल सकते हैं। यह उपयोगकर्ता को इनपुट टैग पर अपने प्रारूप को सही करने में मदद करेगा।

$("#phone").on('input', function() {  //this is use for every time input change.
        var inputValue = getInputValue(); //get value from input and make it usefull number
        var length = inputValue.length; //get lenth of input

        if (inputValue < 1000)
        {
            inputValue = '1('+inputValue;
        }else if (inputValue < 1000000) 
        {
            inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, length);
        }else if (inputValue < 10000000000) 
        {
            inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, 6) + '-' + inputValue.substring(6, length);
        }else
        {
            inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, 6) + '-' + inputValue.substring(6, 10);
        }       
        $("#phone").val(inputValue); //correct value entered to your input.
        inputValue = getInputValue();//get value again, becuase it changed, this one using for changing color of input border
       if ((inputValue > 2000000000) && (inputValue < 9999999999))
      {
          $("#phone").css("border","black solid 1px");//if it is valid phone number than border will be black.
      }else
      {
          $("#phone").css("border","red solid 1px");//if it is invalid phone number than border will be red.
      }
  });

    function getInputValue() {
         var inputValue = $("#phone").val().replace(/\D/g,'');  //remove all non numeric character
        if (inputValue.charAt(0) == 1) // if first character is 1 than remove it.
        {
            var inputValue = inputValue.substring(1, inputValue.length);
        }
        return inputValue;
}

1

बस गैर-स्थानीय फोन नंबर (800 और 900 प्रकार) के चयन के लिए एक समाधान जोड़ना चाहते थे।

(\+?1[-.(\s]?|\()?(900|8(0|4|5|6|7|8)\3+)[)\s]?[-.\s]?\d{3}[-.\s]?\d{4}

1

यह रेग पूर्व अंतरराष्ट्रीय फोन नंबरों और मोबाइल सेल नंबरों के कई प्रारूपों के लिए उपयुक्त है।

यहाँ नियमित अभिव्यक्ति है: / ^ (+ {1} \ d {2,3} \ s? [(] {1} \ d {1,3} [)] {1} \ s? \ D + | + \ _ घ {2,3} \ रों {1} \ d + | \ d +) {1} [\ s | -]? \ d + ([\ s | -]? \ d +) {1,2} $ /

यहाँ जावास्क्रिप्ट फ़ंक्शन है

function isValidPhone(phoneNumber) {
    var found = phoneNumber.search(/^(\+{1}\d{2,3}\s?[(]{1}\d{1,3}[)]{1}\s?\d+|\+\d{2,3}\s{1}\d+|\d+){1}[\s|-]?\d+([\s|-]?\d+){1,2}$/);
    if(found > -1) {
        return true;
    }
    else {
        return false;
    }
}

यह निम्न स्वरूपों को मान्य करता है:

+44 07988-825 465 (अंतरिक्ष के स्थान पर हाइफ़न के किसी भी संयोजन के अलावा केवल एक स्थान को +44 का पालन करना होगा)

+44 (0) 7988-825 465 (रिक्त स्थान के स्थान पर हाइफ़न के किसी भी संयोजन के साथ, सिवाय इसके कि कोई हाइफ़न सीधे (0) से पहले या बाद में मौजूद नहीं हो सकता है या (0) से पहले या बाद के स्थान की आवश्यकता नहीं है)

123 456-789 0123 (रिक्त स्थान के साथ हाइफ़न के किसी भी संयोजन के साथ)

123-123 123 (रिक्त स्थान के स्थान पर हाइफ़न के किसी भी संयोजन के साथ)

123 123456 (अंतरिक्ष को हाइफ़न से बदला जा सकता है)

1 2 3 4 5 6 7 8 9 0

सभी स्वरूपों के लिए कोई डबल स्पेस या डबल हाइफ़न मौजूद नहीं हो सकता है।


1

फ़ोन नंबर + वापसी डेटा स्वरूपित करें

function validTel(str){
  str = str.replace(/[^0-9]/g, '');
  var l = str.length;
  if(l<10) return ['error', 'Tel number length < 10'];
  
  var tel = '', num = str.substr(-7),
      code = str.substr(-10, 3),
      coCode = '';
  if(l>10) {
    coCode = '+' + str.substr(0, (l-10) );
  }
  tel = coCode +' ('+ code +') '+ num;
  
  return ['succes', tel];
}

console.log(validTel('+1 [223] 123.45.67'));


1

इसे इस्तेमाल करे

/ ^ (\ + {0,}) (\ घ {0,}) ([(] {1} \ घ {1,3} [)] {0,}) {0,} (\ रों? \ D + | \ + \ घ {2,3} \ रों {1} \ d + | \ d +) {1} [\ s | -]? \ d + ([\ s | -]? \ d +) {1,2} ( \ रों) {0,} $ / ग्राम

वैध प्रारूप

  • (123) 456-7890
  • (123)456-7890
  • 123-456-7890
  • 1 2 3 4 5 6 7 8 9 0
  • +31636363634
  • +3 (123) 123-12-12
  • +3 (123) 123-12-12
  • +3 (123) 1231212
  • +3 (123) 12312123
  • +3 (123) 123 12 12
  • 075-63546725
  • +7910 120 54 54
  • 910 120 54 54
  • 8 999 999 99 99

https://regex101.com/r/QXAhGV/1


{1}बेकार है, {0,}बेहतर लिखा है *। इन सभी पर कब्जा समूहों का उपयोग क्यों? उन्होंने प्रक्रिया को धीमा कर दिया।
पूर्ण

यह अच्छा नहीं है। क्योंकि आप अपनी इच्छानुसार कई नंबर दर्ज कर सकते हैं।
मोहम्मद जवाद बाराती

1

इस समारोह में हमारे लिए अच्छी तरह से काम किया:

let isPhoneNumber = input => {

  try {
    let ISD_CODES = [93, 355, 213, 1684, 376, 244, 1264, 672, 1268, 54, 374, 297, 61, 43, 994, 1242, 973, 880, 1246, 375, 32, 501, 229, 1441, 975, 591, 387, 267, 55, 246, 1284, 673, 359, 226, 257, 855, 237, 1, 238, 1345, 236, 235, 56, 86, 61, 61, 57, 269, 682, 506, 385, 53, 599, 357, 420, 243, 45, 253, 1767, 1809, 1829, 1849, 670, 593, 20, 503, 240, 291, 372, 251, 500, 298, 679, 358, 33, 689, 241, 220, 995, 49, 233, 350, 30, 299, 1473, 1671, 502, 441481, 224, 245, 592, 509, 504, 852, 36, 354, 91, 62, 98, 964, 353, 441624, 972, 39, 225, 1876, 81, 441534, 962, 7, 254, 686, 383, 965, 996, 856, 371, 961, 266, 231, 218, 423, 370, 352, 853, 389, 261, 265, 60, 960, 223, 356, 692, 222, 230, 262, 52, 691, 373, 377, 976, 382, 1664, 212, 258, 95, 264, 674, 977, 31, 599, 687, 64, 505, 227, 234, 683, 850, 1670, 47, 968, 92, 680, 970, 507, 675, 595, 51, 63, 64, 48, 351, 1787, 1939, 974, 242, 262, 40, 7, 250, 590, 290, 1869, 1758, 590, 508, 1784, 685, 378, 239, 966, 221, 381, 248, 232, 65, 1721, 421, 386, 677, 252, 27, 82, 211, 34, 94, 249, 597, 47, 268, 46, 41, 963, 886, 992, 255, 66, 228, 690, 676, 1868, 216, 90, 993, 1649, 688, 1340, 256, 380, 971, 44, 1, 598, 998, 678, 379, 58, 84, 681, 212, 967, 260, 263],
      //extract numbers from string
      thenum = input.match(/[0-9]+/g).join(""),
      totalnums = thenum.length,
      last10Digits = parseInt(thenum) % 10000000000,
      ISDcode = thenum.substring(0, totalnums - 10);

    //phone numbers are generally of 8 to 16 digits
    if (totalnums >= 8 && totalnums <= 16) {
      if (ISDcode) {
        if (ISD_CODES.includes(parseInt(ISDcode))) {
          return true;
        } else {
          return false;
        }
      } else {
        return true;
      }
    }
  } catch (e) {}

  return false;
}

console.log(isPhoneNumber('91-9883208806'));


0

सरल नियमित अभिव्यक्ति: /\b\d{3}[-.]?\d{3}[-.]?\d{4}\b/g

प्रारूप की जाँच करें, आशा है कि यह काम करता है:
444-555-1234
f: 246.555.8888
m: 1235554567


कृपया अपना उत्तर प्रारूपित करें (एक कोड ब्लॉक के लिए चार रिक्त स्थान के रूप में उपयोग करें)। आपके कोड का स्पष्टीकरण इसकी गुणवत्ता भी बढ़ाएगा।
नंदेर स्पैस्त्र शास्त्र

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

यह चर प्रारूप के किसी भी फोन नंबर को मान्य करेगा:

\\(?\d{3}\\)? कोष्ठक या नहीं द्वारा संलग्न 3 अंक पाता है।

([\-\s\.])? इन विभाजक वर्णों में से किसी को ढूँढता है या नहीं

\d{3} 3 अंक पाता है

\1पहले मिलान वाले विभाजक का उपयोग करता है - यह सुनिश्चित करता है कि विभाजक समान हैं। तो (000) 999-5555 यहां मान्य नहीं होगा क्योंकि एक स्थान और डैश विभाजक है, इसलिए बस "\ 1" को हटा दें और विभाजक उप-पैटर्न के साथ बदलें (ऐसा करने से गैर मानक प्रारूपों को भी मान्य किया जाएगा)। हालाँकि आपको उपयोगकर्ता इनपुट के लिए वैसे भी प्रारूपित करना चाहिए।

\d{4} 4 अंक पाता है

सत्यापन करती है:

  • (000) 999 5555
  • (000) -999-5555
  • (000) .999.5555
  • (000) 999-5555
  • (000) 9995555
  • 000 999 5555
  • 000-999-5555
  • 000.999.5555
  • 0009995555

BTW यह जावास्क्रिप्ट के लिए है इसलिए डबल से बच जाता है।


0

इस js फ़ंक्शन को आज़माएँ। सच से मिलता है अगर यह मेल खाता है और गलत है अगर यह Ref में विफल रहता है

function ValidatePhoneNumber(phone) {
        return /^\+?([0-9]{2})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{4})$/.test(phone);
}


0

बस सब कुछ अनदेखा करें लेकिन अंक।

यहाँ मेरा उपयोग है:

// USA phones should contain at least 10 digits. For Ukrainian phones it's OK to have only 9 digits, without leading 0 and country code prefix: [+380] 88 888-88-88.
String.prototype.isValidPhone = function(digitsCount) {
  var str = this.trim().match(/\d/g);
  return str && str.length >= (digitsCount || 10); // default is at least 10 digits
}

-1

इसे इस्तेमाल करे

/^[\+]?\d{2,}?[(]?\d{2,}[)]?[-\s\.]?\d{2,}?[-\s\.]?\d{2,}[-\s\.]?\d{0,9}$/im

मान्य प्रारूप:

  1. (123) 456-7890
  2. (123)456-7890
  3. 123-456-7890
  4. 123.456.7890
  5. 1 2 3 4 5 6 7 8 9 0
  6. +31636363634
  7. +3 (123) 123-12-12
  8. +3 (123) 123-12-12
  9. +3 (123) 1231212
  10. +3 (123) 12312123
  11. 075-63546725

कृपया अपने उत्तर के साथ स्पष्टीकरण शामिल करना सुनिश्चित करें। हालांकि यह काम कर सकता है, यह स्पष्ट करना महत्वपूर्ण है कि कैसे और क्यों पूरी और प्रासंगिक जानकारी है। उत्तर देने के लिए धन्यवाद :)
मैजिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.