From: tronikos Date: Fri, 27 Jan 2012 20:10:00 +0000 (+0000) Subject: JS: libphonenumber 4.5 X-Git-Tag: upstream/5.3.2~126 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2a4431114b998681bb4bc527b793a7f54eef4cd6;p=platform%2Fupstream%2Flibphonenumber.git JS: libphonenumber 4.5 Review URL: http://codereview.appspot.com/5574080 git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@422 ee073f10-1060-11df-b6a4-87a95322a99c --- diff --git a/javascript/README b/javascript/README index 0996c6f..fddbbea 100644 --- a/javascript/README +++ b/javascript/README @@ -25,7 +25,7 @@ pages with your web browser: How to update: ============== -The JavaScript library is ported from the Java implementation (revision 388). +The JavaScript library is ported from the Java implementation (revision 421). When the Java project gets updated follow these steps to update the JavaScript project: @@ -43,7 +43,7 @@ project: run the following commands to regenerate metadata.js and metadatafortesting.js: - ant -f java/libphonenumber/build.xml build-js-metadata + ant -f java/build.xml build-js-metadata 3. Manually port any changes of the Java code to the JavaScript code: PhoneNumberUtil.java => phonenumberutil.js diff --git a/javascript/i18n/phonenumbers/asyoutypeformatter.js b/javascript/i18n/phonenumbers/asyoutypeformatter.js index 3e121ed..ccec147 100644 --- a/javascript/i18n/phonenumbers/asyoutypeformatter.js +++ b/javascript/i18n/phonenumbers/asyoutypeformatter.js @@ -599,7 +599,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype. } return this.ableToFormat_ ? this.prefixBeforeNationalNumber_.toString() + tempNationalNumber : - tempNationalNumber; + this.accruedInput_.toString(); } else { return this.attemptToChooseFormattingPattern_(); } @@ -752,8 +752,8 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype. this.getAvailableFormats_( nationalNumber.substring(0, i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_)); - this.maybeCreateNewTemplate_(); - return this.inputAccruedNationalNumber_(); + return this.maybeCreateNewTemplate_() ? + this.inputAccruedNationalNumber_() : this.accruedInput_.toString(); } else { return this.prefixBeforeNationalNumber_.toString() + nationalNumber; } @@ -783,7 +783,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.inputAccruedNationalNumber_ = } return this.ableToFormat_ ? this.prefixBeforeNationalNumber_.toString() + tempNationalNumber : - tempNationalNumber; + this.accruedInput_.toString(); } else { return this.prefixBeforeNationalNumber_.toString(); } @@ -896,7 +896,11 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype. this.nationalNumber_.append(numberWithoutCountryCallingCode.toString()); /** @type {string} */ var newRegionCode = this.phoneUtil_.getRegionCodeForCountryCode(countryCode); - if (newRegionCode != this.defaultCountry_) { + if (i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY == + newRegionCode) { + this.currentMetaData_ = + this.phoneUtil_.getMetadataForNonGeographicalRegion(countryCode); + } else if (newRegionCode != this.defaultCountry_) { this.currentMetaData_ = this.getMetadataForRegion_(newRegionCode); } /** @type {string} */ diff --git a/javascript/i18n/phonenumbers/asyoutypeformatter_test.js b/javascript/i18n/phonenumbers/asyoutypeformatter_test.js index 83d230a..4a714ca 100644 --- a/javascript/i18n/phonenumbers/asyoutypeformatter_test.js +++ b/javascript/i18n/phonenumbers/asyoutypeformatter_test.js @@ -93,6 +93,7 @@ function testTooLongNumberMatchingMultipleLeadingDigits() { assertEquals('+81 90 1234 5678', f.inputDigit('8')); assertEquals('+81 90 12 345 6789', f.inputDigit('9')); assertEquals('+81901234567890', f.inputDigit('0')); + assertEquals('+819012345678901', f.inputDigit('1')); } function testAYTFUS() { @@ -699,6 +700,25 @@ function testAYTF_MX() { assertEquals('+52 1 541 234 5678', f.inputDigit('8')); } +function testAYTF_International_Toll_Free() { + /** @type {i18n.phonenumbers.AsYouTypeFormatter} */ + var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US); + // +800 1234 5678 + assertEquals('+', f.inputDigit('+')); + assertEquals('+8', f.inputDigit('8')); + assertEquals('+80', f.inputDigit('0')); + assertEquals('+800 ', f.inputDigit('0')); + assertEquals('+800 1', f.inputDigit('1')); + assertEquals('+800 12', f.inputDigit('2')); + assertEquals('+800 123', f.inputDigit('3')); + assertEquals('+800 1234', f.inputDigit('4')); + assertEquals('+800 1234 5', f.inputDigit('5')); + assertEquals('+800 1234 56', f.inputDigit('6')); + assertEquals('+800 1234 567', f.inputDigit('7')); + assertEquals('+800 1234 5678', f.inputDigit('8')); + assertEquals('+800123456789', f.inputDigit('9')); +} + function testAYTFMultipleLeadingDigitPatterns() { // +81 50 2345 6789 /** @type {i18n.phonenumbers.AsYouTypeFormatter} */ @@ -732,6 +752,15 @@ function testAYTFMultipleLeadingDigitPatterns() { assertEquals('+81 222 12 567', f.inputDigit('7')); assertEquals('+81 222 12 5678', f.inputDigit('8')); + // 011113 + f.clear(); + assertEquals('0', f.inputDigit('0')); + assertEquals('01', f.inputDigit('1')); + assertEquals('011', f.inputDigit('1')); + assertEquals('011 1', f.inputDigit('1')); + assertEquals('011 11', f.inputDigit('1')); + assertEquals('011113', f.inputDigit('3')); + // +81 3332 2 5678 f.clear(); assertEquals('+', f.inputDigit('+')); diff --git a/javascript/i18n/phonenumbers/metadata.js b/javascript/i18n/phonenumbers/metadata.js index e2ddbd0..c7229f5 100644 --- a/javascript/i18n/phonenumbers/metadata.js +++ b/javascript/i18n/phonenumbers/metadata.js @@ -206,13 +206,17 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = { ,690:["TK"] ,691:["FM"] ,692:["MH"] +,800:["001"] +,808:["001"] ,850:["KP"] ,852:["HK"] ,853:["MO"] ,855:["KH"] ,856:["LA"] ,880:["BD"] +,883:["001"] ,886:["TW"] +,888:["001"] ,960:["MV"] ,961:["LB"] ,962:["JO"] @@ -230,6 +234,7 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = { ,975:["BT"] ,976:["MN"] ,977:["NP"] +,979:["001"] ,992:["TJ"] ,993:["TM"] ,994:["AZ"] @@ -255,6 +260,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"AD":[,[,,"(?:[346-9]|180)\\d{5}","\\d{6,8}"] ,[,,"[78]\\d{5}","\\d{6}",,,"712345"] @@ -273,6 +279,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[0268]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"AE":[,[,,"[2-79]\\d{7,8}|800\\d{2,9}","\\d{5,12}"] ,[,,"(?:[2-4679][2-8]\\d|600[25])\\d{5}","\\d{7,9}",,,"22345678"] @@ -295,6 +302,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|99[789]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"AF":[,[,,"[2-7]\\d{8}","\\d{7,9}"] ,[,,"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}","\\d{7,9}",,,"234567890"] @@ -310,6 +318,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:02|19)","\\d{3}",,,"119"] +,[,,"NA","NA"] ] ,"AG":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}","\\d{7}(?:\\d{3})?",,,"2684601234"] @@ -323,6 +332,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"268",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"AI":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"2644(?:6[12]|9[78])\\d{4}","\\d{7}(?:\\d{3})?",,,"2644612345"] @@ -336,6 +346,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"264",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"AL":[,[,,"[2-57]\\d{7}|6\\d{8}|8\\d{5,7}|9\\d{5}","\\d{5,9}"] ,[,,"(?:2(?:[168][1-9]|[247]\\d|9[1-7])|3(?:1[1-3]|[2-6]\\d|[79][1-8]|8[1-9])|4\\d{2}|5(?:1[1-4]|[2-578]\\d|6[1-5]|9[1-7])|8(?:[19][1-5]|[2-6]\\d|[78][1-7]))\\d{5}","\\d{5,8}",,,"22345678"] @@ -358,6 +369,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"12[789]","\\d{3}",,,"129"] +,[,,"NA","NA"] ] ,"AM":[,[,,"[1-35-9]\\d{7}","\\d{5,8}"] ,[,,"(?:10\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}","\\d{5,8}",,,"10123456"] @@ -380,6 +392,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[123]","\\d{3}",,,"102"] +,[,,"NA","NA"] ] ,"AN":[,[,,"[13-79]\\d{6,7}","\\d{7,8}"] ,[,,"(?:318|5(?:25|4\\d|8[239])|7(?:1[578]|50)|9(?:[48]\\d{2}|50\\d|7(?:2[0-2]|[34]\\d|6[35-7]|77)))\\d{4}|416[0239]\\d{3}","\\d{7,8}",,,"7151234"] @@ -398,6 +411,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"AO":[,[,,"[29]\\d{8}","\\d{9}"] ,[,,"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}","\\d{9}",,,"222123456"] @@ -413,26 +427,31 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[235]","\\d{3}",,,"113"] +,[,,"NA","NA"] ] ,"AR":[,[,,"[1-368]\\d{9}|9\\d{10}","\\d{6,11}"] -,[,,"11\\d{8}|(?:2(?:2(?:[0139]\\d|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6])|3(?:1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|[067]\\d)|47[3-8]|6(?:[01345]\\d|2[2-7])|9(?:[0124789]\\d|3[1-6]|5[234]|6[2-6]))|3(?:3(?:2[79]|8[2578])|4(?:[78]\\d|0[0124-9]|[1-356]\\d|4[24-7]|9[123678])|5(?:[138]\\d|2[1245]|4[1-9]|6[2-4]|7[1-6])|7(?:[12468]\\d|3[1245]|5[124-8]|7[2-57])|8(?:[123578]\\d|4[13-6]|6[1-357-9]|9[124]))|670\\d)\\d{6}","\\d{6,10}",,,"1123456789"] -,[,,"675\\d{7}|9(?:11[2-9]\\d{7}|(?:2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578]))[2-9]\\d{6}|\\d{4}[2-9]\\d{5})","\\d{6,11}",,,"91123456789"] +,[,,"11\\d{8}|(?:2(?:2(?:[0139]\\d|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6])|3(?:1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|[067]\\d)|47[3-8]|6(?:[013-6]\\d|2[2-7])|80\\d|9(?:[0124789]\\d|3[1-6]|5[234]|6[2-46]))|3(?:3(?:2[79]|8[2578])|4(?:[78]\\d|0[0124-9]|[1-356]\\d|4[24-7]|9[123678])|5(?:[138]\\d|2[1245]|4[1-9]|6[2-4]|7[1-6])|6[24]\\d|7(?:[124689]\\d|3[1245]|5[14-8]|7[2-57])|8(?:[123578]\\d|4[13-6]|6[1-357-9]|9[124]))|670\\d)\\d{6}","\\d{6,10}",,,"1123456789"] +,[,,"675\\d{7}|9(?:11[2-9]\\d{7}|(?:2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578]))[2-9]\\d{6}|\\d{4}[2-9]\\d{5})","\\d{6,11}",,,"91123456789"] ,[,,"800\\d{7}","\\d{10}",,,"8001234567"] ,[,,"60[04579]\\d{7}","\\d{10}",,,"6001234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"AR",54,"00","0",,,"0(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1-367])|3(?:[06]2|1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|7)|47[3-578]|6(?:1|2[2-7]|4[6-8]?|5[125-8])|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[0-24-68]|5[2-4]|6[2-6]|72?|8[23]?))|3(?:3(?:2[79]|8[2578])|4(?:0[124-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6\\d|7[126]|8[237-9]|9[1-36-8])|5(?:1|2[1245]|3[2-4]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|7(?:1[15-8]|2[125]|3[1245]|4[13]|5[124-8]|7[2-57]|8[1-36])|8(?:1|2[125-7]|3[23578]|4[13-6]|5[4-8]?|6[1-357-9]|7[5-8]?|8[4-7]?|9[124])))15)?","9$1",,,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"] +,"AR",54,"00","0",,,"0(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1-367])|3(?:[06]2|1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|7)|47[3-578]|6(?:[0136]|2[2-7]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[024-68]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|8[2578])|4(?:0[124-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6\\d|7[126]|8[237-9]|9[1-36-8])|5(?:1|2[1245]|3[2-47]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:1[15-8]|2[125]|3[1245]|4[13]|5[14-8]|[69]|7[2-57]|8[1-36])|8(?:1|2[125-7]|3[23578]|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1",,,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"] ,"0$1","",0] ,[,"(9)(11)(\\d{4})(\\d{4})","$2 15-$3-$4",["911"] ,"0$1","",0] -,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9(?:2[2369]|3[458])","9(?:2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578]))"] +,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9(?:2[23689]|3[4-8])","9(?:2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578]))","9(?:2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79])))"] +,"0$1","",0] +,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"] ,"0$1","",0] -,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[24-9]|3[0-69]|47|6[25]|9[02-68])|3(?:3[28]|4[046-9]|5[2467]|7[1-578]|8[23469]))"] +,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9[23]"] ,"0$1","",0] ,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"] ,"0$1","",0] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578])","2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79]))"] +,"0$1","",0] +,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))"] ,"0$1","",0] ,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"] ,"0$1","",0] @@ -441,13 +460,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,[,"(9)(11)(\\d{4})(\\d{4})","$1 $2 $3-$4",["911"] ] -,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9(?:2[2369]|3[458])","9(?:2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578]))"] +,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9(?:2[23689]|3[4-8])","9(?:2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578]))","9(?:2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79])))"] +] +,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"] ] -,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[24-9]|3[0-69]|47|6[25]|9[02-68])|3(?:3[28]|4[046-9]|5[2467]|7[1-578]|8[23469]))"] +,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9[23]"] ] ,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"] ] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578])","2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79]))"] +] +,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))"] ] ,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"] ] @@ -456,6 +479,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"810\\d{7}","\\d{10}",,,"8101234567"] ,[,,"810\\d{7}","\\d{10}",,,"8101234567"] ,,[,,"1(?:0[017]|28)","\\d{3}",,,"101"] +,[,,"NA","NA"] ] ,"AS":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"6846(?:22|33|44|55|77|88|9[19])\\d{4}","\\d{7}(?:\\d{3})?",,,"6846221234"] @@ -469,6 +493,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"684",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"AT":[,[,,"[1-9]\\d{3,12}","\\d{3,13}"] ,[,,"1\\d{3,12}|(?:2(?:1[467]|2[134-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-8]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|63|7[1368]|8[2457])|5(?:12|2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[1-35-8]|5[468]|62)|7(?:2[1-8]|3[25]|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{3,10}","\\d{3,13}",,,"1234567890"] @@ -489,10 +514,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"5(?:(?:0[1-9]|17)\\d{2,10}|[79]\\d{3,11})|720\\d{6,10}","\\d{5,13}",,,"50123"] ,,[,,"1(?:[12]2|33|44)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"AU":[,[,,"[1-578]\\d{5,9}","\\d{6,10}"] ,[,,"[237]\\d{8}|8(?:[68]\\d{3}|7[0-6]\\d{2}|9(?:[02-9]\\d{2}|1(?:[0-57-9]\\d|6[0135-9])))\\d{4}","\\d{8,9}",,,"212345678"] -,[,,"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-37-9]|6[6-9]|7[07-9]|8[7-9])\\d{6}","\\d{9}",,,"412345678"] +,[,,"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[46-9]|5[0-37-9]|6[6-9]|7[07-9]|8[7-9]|9[89])\\d{6}","\\d{9}",,,"412345678"] ,[,,"180(?:0\\d{3}|2)\\d{3}","\\d{7,10}",,,"1800123456"] ,[,,"19(?:0[0126]\\d{6}|[13-5]\\d{3}|[679]\\d{5})","\\d{6,10}",,,"1900123456"] ,[,,"13(?:00\\d{2})?\\d{4}","\\d{6,10}",,,"1300123456"] @@ -519,6 +545,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"1(?:3(?:\\d{4}|00\\d{6})|80(?:0\\d{6}|2\\d{3}))","\\d{6,10}",,,"1300123456"] ,[,,"NA","NA"] ,,[,,"000|112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"AW":[,[,,"[25-9]\\d{6}","\\d{7}"] ,[,,"5(?:2\\d|8[1-9])\\d{4}","\\d{7}",,,"5212345"] @@ -534,6 +561,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"100|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"AX":[,[,,"[135]\\d{5,9}|[27]\\d{4,9}|4\\d{5,10}|6\\d{7,8}|8\\d{6,9}","\\d{5,12}"] ,[,,"18[1-8]\\d{3,9}","\\d{6,12}",,,"1812345678"] @@ -547,6 +575,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"10[1-9]\\d{3,7}|2(?:0(?:[16-8]\\d{3,7}|2[14-9]\\d{1,6}|[3-5]\\d{2,7}|9[0-7]\\d{1,6})|9\\d{4,8})|30[1-9]\\d{3,7}|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})","\\d{5,10}",,,"10112345"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"AZ":[,[,,"[1-9]\\d{7,8}","\\d{5,9}"] ,[,,"(?:1(?:(?:[28]\\d|9)\\d|02|1[0-589]|3[358]|4[013-79]|5[0-479]|6[02346-9]|7[0-24-8])|2(?:02\\d|1(?:2[0-8]|42|6)|2(?:2[0-79]|3[0-35]|42|[1-35-9]|)|3(?:3[0-58]|[0-24])|4(?:2[0124579]|[1468])|5(?:2[0124579]|5)|6(?:2\\d|3[0128]|[56])|79)|365?\\d|44\\d{2})\\d{5}","\\d{5,9}",,,"123123456"] @@ -573,6 +602,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}",,,"101"] +,[,,"NA","NA"] ] ,"BA":[,[,,"[3-689]\\d{7}","\\d{6,8}"] ,[,,"(?:[35]\\d|49)\\d{6}","\\d{6,8}",,,"30123456"] @@ -588,6 +618,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"81\\d{6}","\\d{8}",,,"81123456"] ,,[,,"12[234]","\\d{3}",,,"122"] +,[,,"NA","NA"] ] ,"BB":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"246[2-9]\\d{6}","\\d{7}(?:\\d{3})?",,,"2462345678"] @@ -601,9 +632,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"246",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"[235]11","\\d{3}",,,"211"] +,[,,"NA","NA"] ] ,"BD":[,[,,"[2-79]\\d{5,9}|1\\d{9}|8[0-7]\\d{4,8}","\\d{6,10}"] -,[,,"2(?:7\\d1|8(?:[026]1|[1379][1-5]|8[1-8])|9(?:0[0-2]|1[1-4]|3[3-5]|5[56]|6[67]|71|8[078]))\\d{4}|3(?:[6-8]1|(?:0[23]|[25][12]|82|416)\\d|(?:31|12?[5-7])\\d{2})\\d{3}|4(?:(?:02|[49]6|[68]1)|(?:0[13]|21\\d?|[23]2|[457][12]|6[28])\\d|(?:23|[39]1)\\d{2}|1\\d{3})\\d{3}|5(?:(?:[457-9]1|62)|(?:1\\d?|2[12]|3[1-3]|52)\\d|61{2})|6(?:[45]1|(?:11|2[15]|[39]1)\\d|(?:[06-8]1|62)\\d{2})|7(?:(?:32|91)|(?:02|31|[67][12])\\d|[458]1\\d{2}|21\\d{3})\\d{3}|8(?:(?:4[12]|[5-7]2|1\\d?)|(?:0|3[12]|[5-7]1|217)\\d)\\d{4}|9(?:[35]1|(?:[024]2|81)\\d|(?:1|[24]1)\\d{2})\\d{3}","\\d{6,9}",,,"27111234"] +,[,,"2(?:7(?:1[0-267]|2[0-289]|3[0-29]|[46][01]|5[1-3]|7[017]|91)|8(?:0[125]|[139][1-6]|2[0157-9]|6[1-35]|7[1-5]|8[1-8])|9(?:0[0-2]|1[1-4]|2[568]|3[3-6]|5[5-7]|6[0167]|7[15]|8[016-8]))\\d{4}|3(?:[6-8]1|(?:0[23]|[25][12]|82|416)\\d|(?:31|12?[5-7])\\d{2})\\d{3}|4(?:(?:02|[49]6|[68]1)|(?:0[13]|21\\d?|[23]2|[457][12]|6[28])\\d|(?:23|[39]1)\\d{2}|1\\d{3})\\d{3}|5(?:(?:[457-9]1|62)|(?:1\\d?|2[12]|3[1-3]|52)\\d|61{2})|6(?:[45]1|(?:11|2[15]|[39]1)\\d|(?:[06-8]1|62)\\d{2})|7(?:(?:32|91)|(?:02|31|[67][12])\\d|[458]1\\d{2}|21\\d{3})\\d{3}|8(?:(?:4[12]|[5-7]2|1\\d?)|(?:0|3[12]|[5-7]1|217)\\d)\\d{4}|9(?:[35]1|(?:[024]2|81)\\d|(?:1|[24]1)\\d{2})\\d{3}","\\d{6,9}",,,"27111234"] ,[,,"(?:1[13-9]\\d|(?:3[78]|44)[02-9]|6(?:44|6[02-9]))\\d{7}","\\d{10}",,,"1812345678"] ,[,,"80[03]\\d{7}","\\d{10}",,,"8001234567"] ,[,,"NA","NA"] @@ -622,7 +654,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] -,,[,,"999","\\d{3}",,,"999"] +,,[,,"10[0-2]|999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"BE":[,[,,"[1-9]\\d{7,8}","\\d{8,9}"] ,[,,"(?:1[0-69]|[23][2-8]|[49][23]|5\\d|6[013-57-9]|7[18])\\d{6}|8(?:0[1-9]|[1-69]\\d)\\d{5}","\\d{8}",,,"12345678"] @@ -645,6 +678,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[01]|12)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"BF":[,[,,"[2457]\\d{7}","\\d{8}"] ,[,,"(?:20(?:49|5[23]|9[016-9])|40(?:4[569]|55|7[0179])|50[34]\\d)\\d{4}","\\d{8}",,,"20491234"] @@ -660,6 +694,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] ,"BG":[,[,,"[23567]\\d{5,7}|[489]\\d{6,8}","\\d{5,9}"] ,[,,"2(?:[0-8]\\d{5,6}|9\\d{4,6})|(?:[36]\\d|5[1-9]|8[1-6]|9[1-7])\\d{5,6}|(?:4(?:[124-7]\\d|3[1-6])|7(?:0[1-9]|[1-9]\\d))\\d{4,5}","\\d{5,8}",,,"2123456"] @@ -688,10 +723,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|50|6[06])","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"BH":[,[,,"[136-9]\\d{7}","\\d{8}"] ,[,,"(?:1(?:3[3-6]|6[0156]|7\\d)\\d|6(?:1[16]\\d|6(?:0\\d|3[12]|44)|9(?:69|9[6-9]))|77\\d{2})\\d{4}","\\d{8}",,,"17001234"] -,[,,"(?:3(?:[23469]\\d|77|8[348])\\d|6(?:1[16]\\d|6(?:[06]\\d3[03-9]|44|)|9(?:69|9[6-9]))|77\\d{2})\\d{4}","\\d{8}",,,"36001234"] +,[,,"(?:3(?:[23469]\\d|77|8[348])\\d|6(?:1[16]\\d|6(?:[06]\\d|3[03-9]|44)|9(?:69|9[6-9]))|77\\d{2})\\d{4}","\\d{8}",,,"36001234"] ,[,,"80\\d{6}","\\d{8}",,,"80123456"] ,[,,"(?:87|9[014578])\\d{6}","\\d{8}",,,"90123456"] ,[,,"84\\d{6}","\\d{8}",,,"84123456"] @@ -703,6 +739,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"BI":[,[,,"[27]\\d{7}","\\d{8}"] ,[,,"22(?:2[0-7]|[3-5]0)\\d{4}","\\d{8}",,,"22201234"] @@ -718,6 +755,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[78]","\\d{3}",,,"117"] +,[,,"NA","NA"] ] ,"BJ":[,[,,"[2689]\\d{7}|7\\d{3}","\\d{4,8}"] ,[,,"2(?:02|1[037]|2[45]|3[68])\\d{5}","\\d{8}",,,"20211234"] @@ -733,6 +771,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[78]","\\d{3}",,,"117"] +,[,,"NA","NA"] ] ,"BL":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"590(?:2[7-9]|5[12]|87)\\d{4}","\\d{9}",,,"590271234"] @@ -746,6 +785,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"18","\\d{2}",,,"18"] +,[,,"NA","NA"] ] ,"BM":[,[,,"[4589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"441(?:2(?:02|23|61|[3479]\\d)|[46]\\d{2}|5(?:4\\d|60|89)|824)\\d{4}","\\d{7}(?:\\d{3})?",,,"4412345678"] @@ -759,6 +799,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"441",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"BN":[,[,,"[2-578]\\d{6}","\\d{7}"] ,[,,"[2-5]\\d{6}","\\d{7}",,,"2345678"] @@ -774,6 +815,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[135]","\\d{3}",,,"991"] +,[,,"NA","NA"] ] ,"BO":[,[,,"[23467]\\d{7}","\\d{7,8}"] ,[,,"(?:2(?:2\\d{2}|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d{2}|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:2\\d|3[234]|4[248]|5[24]|6[2-6]|7\\d))|4(?:4\\d{2}|6(?:11|[24689]\\d|72)))\\d{4}","\\d{7,8}",,,"22123456"] @@ -792,6 +834,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[089]","\\d{3}",,,"110"] +,[,,"NA","NA"] ] ,"BR":[,[,,"[1-9]\\d{7,9}","\\d{8,10}"] ,[,,"1[1-9][2-5]\\d{7}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}","\\d{8,10}",,,"1123456789"] @@ -812,6 +855,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"(?:400\\d|3003)\\d{4}","\\d{8}",,,"40041234"] ,[,,"NA","NA"] ,,[,,"1(?:12|28|9[023])|911","\\d{3}",,,"190"] +,[,,"NA","NA"] ] ,"BS":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3467]|8[0-4]|9[2-467])|461|502|6(?:12|7[67]|8[78]|9[89])|702)\\d{4}","\\d{7}(?:\\d{3})?",,,"2423456789"] @@ -825,6 +869,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"242",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"91[19]","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"BT":[,[,,"[1-8]\\d{6,7}","\\d{6,8}"] ,[,,"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}","\\d{6,7}",,,"2345678"] @@ -843,6 +888,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[023]","\\d{3}",,,"113"] +,[,,"NA","NA"] ] ,"BW":[,[,,"[2-79]\\d{6,7}","\\d{7,8}"] ,[,,"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0235-9]|55|6\\d|7[01]|9[0-57])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}","\\d{7}",,,"2401234"] @@ -863,6 +909,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[789]","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"BY":[,[,,"[12-4]\\d{8}|[89]\\d{9,10}","\\d{7,11}"] ,[,,"(?:1(?:5(?:1[1-5]|2\\d|6[1-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d{2})|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:2\\d|3[02-79]|4[024-7]|5[0-7])))\\d{5}","\\d{7,9}",,,"152450911"] @@ -883,6 +930,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"8(?:[01]|20)\\d{8}|902\\d{7}","\\d{10,11}",,,"82012345678"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"BZ":[,[,,"[2-8]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"] ,[,,"[234578][02]\\d{5}","\\d{7}",,,"2221234"] @@ -901,6 +949,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"9(?:0|11)","\\d{2,3}",,,"911"] +,[,,"NA","NA"] ] ,"CA":[,[,,"[2-9]\\d{9}|3\\d{6}","\\d{7}(?:\\d{3})?"] ,[,,"(?:2(?:04|26|[48]9|50)|3(?:06|43)|4(?:03|1[68]|38|5[06])|5(?:0[06]|1[49]|79|8[17])|6(?:0[04]|13|47)|7(?:0[059]|80|78)|8(?:[06]7|19|)|90[25])[2-9]\\d{6}|310\\d{4}","\\d{7}(?:\\d{3})?",,,"2042345678"] @@ -914,6 +963,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"CC":[,[,,"[1458]\\d{5,9}","\\d{6,10}"] ,[,,"89162\\d{4}","\\d{8,9}",,,"891621234"] @@ -927,6 +977,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"000|112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"CD":[,[,,"[89]\\d{8}|[1-6]\\d{6}","\\d{7,9}"] ,[,,"[1-6]\\d{6}","\\d{7}",,,"1234567"] @@ -945,6 +996,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"CF":[,[,,"[278]\\d{7}","\\d{8}"] ,[,,"2[12]\\d{6}","\\d{8}",,,"21612345"] @@ -960,6 +1012,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"CG":[,[,,"[028]\\d{8}","\\d{9}"] ,[,,"222[1-589]\\d{5}","\\d{9}",,,"222123456"] @@ -978,8 +1031,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"NA","NA"] +,[,,"NA","NA"] ] -,"CH":[,[,,"[2-9]\\d{8}","\\d{9}"] +,"CH":[,[,,"[2-9]\\d{8}|860\\d{9}","\\d{9}(?:\\d{3})?"] ,[,,"(?:2[12467]|3[1-4]|4[134]|5[12568]|6[12]|[7-9]1)\\d{7}","\\d{9}",,,"212345678"] ,[,,"7[46-9]\\d{7}","\\d{9}",,,"741234567"] ,[,,"800\\d{6}","\\d{9}",,,"800123456"] @@ -991,15 +1045,18 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"] ,"0$1","",0] +,[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["860"] +,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[278]|44)","\\d{3}",,,"112"] +,[,,"860\\d{9}","\\d{12}",,,"860123456789"] ] ,"CI":[,[,,"[02-6]\\d{7}","\\d{8}"] ,[,,"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}","\\d{8}",,,"21234567"] -,[,,"(?:0[1-9]|4[04-9]|5[07]|6[0567])\\d{6}","\\d{8}",,,"01234567"] +,[,,"(?:0[1-9]|4[04-9]|5[057-9]|6[05679])\\d{6}","\\d{8}",,,"01234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -1011,6 +1068,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"1(?:1[01]|[78]0)","\\d{3}",,,"110"] +,[,,"NA","NA"] ] ,"CK":[,[,,"[2-57]\\d{4}","\\d{5}"] ,[,,"(?:2\\d|3[13-7]|4[1-5])\\d{3}","\\d{5}",,,"21234"] @@ -1026,6 +1084,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[689]","\\d{3}",,,"998"] +,[,,"NA","NA"] ] ,"CL":[,[,,"(?:[2-9]|600|123)\\d{7,8}","\\d{6,11}"] ,[,,"(?:2|32|41)\\d{7}|(?:3[3-5]|4[235]|5[1-3578]|6[13-57]|7[1-35])\\d{6,7}","\\d{6,9}",,,"21234567"] @@ -1054,6 +1113,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"600\\d{7,8}","\\d{10,11}",,,"6001234567"] ,[,,"NA","NA"] ,,[,,"13[123]","\\d{3}",,,"133"] +,[,,"NA","NA"] ] ,"CM":[,[,,"[237-9]\\d{7}","\\d{8}"] ,[,,"(?:22|33)\\d{6}","\\d{8}",,,"22123456"] @@ -1072,15 +1132,16 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1?1[37]","\\d{2,3}",,,"113"] +,[,,"NA","NA"] ] ,"CN":[,[,,"[1-79]\\d{7,11}|8[0-357-9]\\d{6,9}","\\d{4,12}"] ,[,,"21\\d{8,10}|(?:10|2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898)\\d{8}|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[3-9]|5[2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5\\d|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))\\d{7}|80(?:29|6[03578]|7[018]|81)\\d{4}","\\d{4,12}",,,"1012345678"] ,[,,"1(?:3\\d|4[57]|5[0-35-9]|8[0235-9])\\d{8}","\\d{11}",,,"13123456789"] ,[,,"(?:10)?800\\d{7}","\\d{10,12}",,,"8001234567"] ,[,,"16[08]\\d{5}","\\d{8}",,,"16812345"] +,[,,"400\\d{7}","\\d{10}",,,"4001234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"400\\d{7}","\\d{10}",,,"4001234567"] ,"CN",86,"00","0",,,"0",,,,[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]"] ,"0$1","",1] ,[,"([48]00)(\\d{3})(\\d{4})","$1 $2 $3",["[48]00"] @@ -1121,6 +1182,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"(?:4|(?:10)?8)00\\d{7}","\\d{10,12}",,,"4001234567"] ,[,,"NA","NA"] ,,[,,"1(?:1[09]|20)","\\d{3}",,,"119"] +,[,,"NA","NA"] ] ,"CO":[,[,,"(?:[13]\\d{0,3}|[24-8])\\d{7}","\\d{7,11}"] ,[,,"[124-8][2-9]\\d{6}","\\d{8}",,,"12345678"] @@ -1148,16 +1210,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[29]|23|32|56)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] -,"CR":[,[,,"[24589]\\d{7,9}","\\d{8,10}"] +,"CR":[,[,,"[24-9]\\d{7,9}","\\d{8,10}"] ,[,,"2[24-7]\\d{6}","\\d{8}",,,"22123456"] -,[,,"57[01]\\d[01]\\d{3}|8[36789]\\d{6}","\\d{8}",,,"83123456"] +,[,,"5(?:0[0-4]|7[01])\\d{5}|[67][01]\\d{6}|8[36-9]\\d{6}","\\d{8}",,,"83123456"] ,[,,"800\\d{7}","\\d{10}",,,"8001234567"] ,[,,"90[059]\\d{7}","\\d{10}",,,"9001234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"40(?:00\\d{4}|10[0-3]\\d{3}|2(?:00\\d|900)\\d{2})","\\d{8}",,,"40001234"] -,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[245]|8[3-9]"] +,[,,"40(?:00\\d{4}|10[0-3]\\d{3}|2(?:00\\d|900)\\d{2}|3[01]\\d{4}|5\\d{5})","\\d{8}",,,"40001234"] +,"CR",506,"00",,,,"(19(?:0[0-2]|19|77))",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24-7]|8[3-9]"] ,"","$CC $1",0] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]0"] ,"","$CC $1",0] @@ -1166,6 +1229,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"CU":[,[,,"[2-57]\\d{5,7}","\\d{4,8}"] ,[,,"2[1-4]\\d{5,6}|3(?:1\\d{6}|[23]\\d{4,6})|4(?:[125]\\d{5,6}|[36]\\d{6}|[78]\\d{4,6})|7\\d{6,7}","\\d{4,8}",,,"71234567"] @@ -1186,6 +1250,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[56]","\\d{3}",,,"106"] +,[,,"NA","NA"] ] ,"CV":[,[,,"[259]\\d{6}","\\d{7}"] ,[,,"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}","\\d{7}",,,"2211234"] @@ -1201,6 +1266,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"13[012]","\\d{3}",,,"132"] +,[,,"NA","NA"] ] ,"CY":[,[,,"[257-9]\\d{7}","\\d{8}"] ,[,,"2[2-6]\\d{6}","\\d{8}",,,"22345678"] @@ -1216,6 +1282,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"(?:50|77)\\d{6}","\\d{8}",,,"77123456"] ,,[,,"1(?:12|99)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"CX":[,[,,"[1458]\\d{5,9}","\\d{6,10}"] ,[,,"89164\\d{4}","\\d{8,9}",,,"891641234"] @@ -1229,6 +1296,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"000|112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"CZ":[,[,,"[2-9]\\d{8}","\\d{9}"] ,[,,"2\\d{8}|(?:3[1257-9]|4[16-9]|5[13-9])\\d{7}","\\d{9}",,,"212345678"] @@ -1244,10 +1312,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"9(?:5[056]|7[234])\\d{6}","\\d{9}",,,"972123456"] ,,[,,"1(?:12|5[058])","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"DE":[,[,,"[1-35-9]\\d{3,14}|4(?:[0-8]\\d{4,12}|9(?:4[1-8]|[0-35-7]\\d)\\d{2,7})","\\d{2,15}"] ,[,,"[246]\\d{5,13}|3(?:[03-9]\\d{4,13}|2\\d{9})|5(?:0[2-8]|[1256]\\d|[38][0-8]|4\\d{0,2}|[79][0-7])\\d{3,11}|7(?:0[2-8]|[1-9]\\d)\\d{3,10}|8(?:0[2-9]|[1-9]\\d)\\d{3,10}|9(?:0[6-9]|[1-9]\\d)\\d{3,10}","\\d{2,15}",,,"30123456"] -,[,,"1(?:5\\d{9}|7(?:[0-57-9]|6\\d)\\d{7}|6(?:[02]\\d{7,8}|3\\d{7}))","\\d{10,11}",,,"15123456789"] +,[,,"1(?:5[0-2579]\\d{8}|6[023]\\d{7,8}|7(?:[0-57-9]\\d?|6\\d)\\d{7})","\\d{10,11}",,,"15123456789"] ,[,,"800\\d{7,9}","\\d{10,12}",,,"8001234567"] ,[,,"900(?:[135]\\d{6}|9\\d{7})","\\d{10,11}",,,"9001234567"] ,[,,"180\\d{5,11}","\\d{8,14}",,,"18012345"] @@ -1272,6 +1341,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[02]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"DJ":[,[,,"[1-8]\\d{5}","\\d{6}"] ,[,,"(?:1[05]|[2-5]\\d)\\d{4}","\\d{6}",,,"251234"] @@ -1287,6 +1357,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] ,"DK":[,[,,"[2-9]\\d{7}","\\d{8}"] ,[,,"(?:[2-7]\\d|8[126-9]|9[6-9])\\d{6}","\\d{8}",,,"32123456"] @@ -1302,6 +1373,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"DM":[,[,,"[57-9]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}","\\d{7}(?:\\d{3})?",,,"7674201234"] @@ -1315,6 +1387,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"767",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"333|9(?:11|99)","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"DO":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"8(?:[04]9[2-9]\\d{6}|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d{2}|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9]))\\d{4})","\\d{7}(?:\\d{3})?",,,"8092345678"] @@ -1328,6 +1401,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"8[024]9",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"DZ":[,[,,"(?:[1-4]|[5-9]\\d)\\d{7}","\\d{8,9}"] ,[,,"(?:1\\d|2[014-79]|3[0-8]|4[0135689])\\d{6}|9619\\d{5}","\\d{8,9}",,,"12345678"] @@ -1348,6 +1422,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[47]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] ,"EC":[,[,,"[2-9]\\d{7}|1\\d{9,10}","\\d{7,11}"] ,[,,"[2-7][2-7]\\d{6}","\\d{7,8}",,,"22123456"] @@ -1375,6 +1450,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[12]|12)|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"EE":[,[,,"[3-9]\\d{6,7}|800\\d{6,7}","\\d{7,10}"] ,[,,"(?:3[23589]|4(?:0\\d|[3-8])|6\\d|7[1-9]|88)\\d{5}","\\d{7,8}",,,"3212345"] @@ -1397,6 +1473,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"800[2-9]\\d{3}","\\d{7}",,,"8002123"] ,[,,"NA","NA"] ,,[,,"11[02]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"EG":[,[,,"1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}","\\d{5,10}"] ,[,,"(?:1[35][23]|2[23]\\d|3\\d|4(?:0[2-4]|[578][23]|64)|5(?:0[234]|[57][23])|6[24-689]3|8(?:[28][2-4]|42|6[23])|9(?:[25]2|3[24]|6[23]|7[2-4]))\\d{6}|1[69]\\d{3}","\\d{5,9}",,,"234567890"] @@ -1419,6 +1496,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:2[23]|80)","\\d{3}",,,"122"] +,[,,"NA","NA"] ] ,"ER":[,[,,"[178]\\d{6}","\\d{6,7}"] ,[,,"1(?:1[12568]|20|40|55|6[146])\\d{4}|8\\d{6}","\\d{6,7}",,,"8370362"] @@ -1434,6 +1512,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"ES":[,[,,"[5-9]\\d{8}","\\d{9}"] ,[,,"(?:8(?:[13]0|[28][0-8]|[47][1-9]|5[01346-9]|6[0457-9])|9(?:[1238][0-8]|[47][1-9]|[56]\\d))\\d{6}","\\d{9}",,,"810123456"] @@ -1449,6 +1528,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"51\\d{7}","\\d{9}",,,"511234567"] ,,[,,"0(?:61|8[05]|9[12])|112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"ET":[,[,,"[1-59]\\d{8}","\\d{7,9}"] ,[,,"(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-23]|6[5-8])|5(?:1[57]|44|5[0-4])|6(?:18|2[69]|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|22[0-6]|33[0134689]|44[04]|55[0-6]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:11[1-9]|22[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}","\\d{7,9}",,,"111112345"] @@ -1464,6 +1544,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11?|[23]|9[17])","\\d{2,3}",,,"991"] +,[,,"NA","NA"] ] ,"FI":[,[,,"1\\d{4,11}|[2-9]\\d{4,10}","\\d{5,12}"] ,[,,"1(?:[3569][1-8]\\d{3,9}|[47]\\d{5,10})|2[1-8]\\d{3,9}|3(?:[1-8]\\d{3,9}|9\\d{4,8})|[5689][1-8]\\d{3,9}","\\d{5,12}",,,"1312345678"] @@ -1484,6 +1565,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"10[1-9]\\d{3,7}|2(?:0(?:[16-8]\\d{3,7}|2[14-9]\\d{1,6}|[3-5]\\d{2,7}|9[0-7]\\d{1,6})|9\\d{4,8})|30[1-9]\\d{3,7}|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})","\\d{5,10}",,,"10112345"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"FJ":[,[,,"[36-9]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"] ,[,,"(?:3[0-5]|6[25-7]|8[58])\\d{5}","\\d{7}",,,"3212345"] @@ -1502,6 +1584,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"91[17]","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"FK":[,[,,"[2-7]\\d{4}","\\d{5}"] ,[,,"[2-47]\\d{4}","\\d{5}",,,"31234"] @@ -1515,6 +1598,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"FM":[,[,,"[39]\\d{6}","\\d{7}"] ,[,,"3[2357]0[1-9]\\d{3}|9[2-6]\\d{5}","\\d{7}",,,"3201234"] @@ -1530,6 +1614,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911|320221","\\d{3}(?:\\d{3})?",,,"911"] +,[,,"NA","NA"] ] ,"FO":[,[,,"[2-9]\\d{5}","\\d{6}"] ,[,,"(?:20|[3-4]\\d|8[19])\\d{4}","\\d{6}",,,"201234"] @@ -1545,6 +1630,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"FR":[,[,,"[124-9]\\d{8}|3\\d{3}(?:\\d{5})?","\\d{4}(?:\\d{5})?"] ,[,,"[1-5]\\d{8}","\\d{9}",,,"123456789"] @@ -1563,17 +1649,18 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"3\\d{3}","\\d{4}",,,"3123"] ,[,,"NA","NA"] ,,[,,"1(?:[578]|12)","\\d{2,3}",,,"112"] +,[,,"NA","NA"] ] -,"GA":[,[,,"[4-9]\\d{5}|0\\d{7}","\\d{6,8}"] -,[,,"(?:4(?:[04-8]\\d|2[04])|(?:5[04-689]|6[024-9]|7\\d|8[236]|9[02368])\\d)\\d{3}","\\d{6}",,,"441234"] +,"GA":[,[,,"[12]\\d{6}|0\\d{7}","\\d{6,8}"] +,[,,"(?:1(?:4[4-8]|7\\d)|2(?:4[02]|5[04-689]|6[024-79]|8[236]|9[02368]))\\d{4}","\\d{6,7}",,,"1441234"] ,[,,"0(?:5(?:0[89]|3[0-4]|8[0-26]|9[238])|6(?:0[3-7]|1[01]|2[0-7]|6[0-589]|71|83|9[57])|7(?:1[2-5]|2[89]|3[35-9]|4[01]|5[0-347-9]|[67]\\d|8[457-9]|9[0146]))\\d{4}","\\d{8}",,,"06031234"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"GA",241,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[4-9]"] -,"","",0] +,"GA",241,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[12]"] +,"0$1","",0] ,[,"(0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"] ,"","",0] ] @@ -1581,6 +1668,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"1730|18|13\\d{2}","\\d{2,4}",,,"1730"] +,[,,"NA","NA"] ] ,"GB":[,[,,"\\d{7,10}","\\d{4,10}"] ,[,,"2(?:0[01378]|3[0189]|4[017]|8[0-46-9]|9[012])\\d{7}|1(?:(?:1(?:3[0-48]|[46][0-4]|5[012789]|7[0-39]|8[01349])|21[0-7]|31[0-8]|[459]1\\d|61[0-46-9]))\\d{6}|1(?:2(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-4789]|7[013-9]|9\\d)|3(?:0\\d|[25][02-9]|3[02-579]|[468][0-46-9]|7[1235679]|9[24578])|4(?:0[03-9]|[28][02-5789]|[37]\\d|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1235-9]|2[024-9]|3[015689]|4[02-9]|5[03-9]|6\\d|7[0-35-9]|8[0-468]|9[0-5789])|6(?:0[034689]|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0124578])|7(?:0[0246-9]|2\\d|3[023678]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-5789]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|2[02-689]|3[1-5789]|4[2-9]|5[0-579]|6[234789]|7[0124578]|8\\d|9[2-57]))\\d{6}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-4789]|8[345])))|3(?:638[2-5]|647[23]|8(?:47[04-9]|64[015789]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[123]))|5(?:24(?:3[2-79]|6\\d)|276\\d|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[567]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|955[0-4])|7(?:26(?:6[13-9]|7[0-7])|442\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|84(?:3[2-58]))|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}|176888[234678]\\d{2}|16977[23]\\d{3}","\\d{4,10}",,,"1212345678"] @@ -1615,6 +1703,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"(?:3[0347]|55)\\d{8}","\\d{10}",,,"5512345678"] ,,[,,"112|999","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"GD":[,[,,"[4589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|68|73|90)|63[68]|7(?:58|84)|938)\\d{4}","\\d{7}(?:\\d{3})?",,,"4732691234"] @@ -1628,6 +1717,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"473",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"GE":[,[,,"[3458]\\d{8}","\\d{6,9}"] ,[,,"(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}","\\d{6,9}",,,"322123456"] @@ -1646,6 +1736,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0(?:11|22|33)|1(?:1[123]|22)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"GF":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"594(?:10|2[012457-9]|3[0-57-9]|4[3-9]|5[7-9]|6[0-3]|9[014])\\d{4}","\\d{9}",,,"594101234"] @@ -1661,6 +1752,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}",,,"15"] +,[,,"NA","NA"] ] ,"GG":[,[,,"[135789]\\d{6,9}","\\d{6,10}"] ,[,,"1481\\d{6}","\\d{6,10}",,,"1481456789"] @@ -1674,6 +1766,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"(?:3[0347]|55)\\d{8}","\\d{10}",,,"5512345678"] ,,[,,"112|999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"GH":[,[,,"[235]\\d{6,8}","\\d{7,9}"] ,[,,"3(?:0[237]\\d|[167](?:2[0-6]|7\\d)|2(?:2[0-5]|7\\d)|3(?:2[0-37]|7\\d)|4(?:[27]\\d|30)|5(?:2[0-7]|7\\d)|8(?:2[0-2]|7\\d)|9(?:20|7\\d))\\d{5}","\\d{7,9}",,,"302345678"] @@ -1689,6 +1782,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[123]|999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"GI":[,[,,"[2568]\\d{7}","\\d{8}"] ,[,,"2(?:00\\d|16[0-7]|22[2457])\\d{4}","\\d{8}",,,"20012345"] @@ -1702,6 +1796,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|9[09])","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"GL":[,[,,"[1-689]\\d{5}","\\d{6}"] ,[,,"(?:19|3[1-6]|6[14689]|8[14-79]|9\\d)\\d{4}","\\d{6}",,,"321000"] @@ -1717,6 +1812,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"GM":[,[,,"[3-9]\\d{6}","\\d{7}"] ,[,,"(?:4(?:[23]\\d{2}|4(?:1[024679]|[6-9]\\d))|5(?:54[0-7]|6(?:[67]\\d)|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}","\\d{7}",,,"5661234"] @@ -1732,21 +1828,23 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1?1[678]","\\d{2,3}",,,"117"] +,[,,"NA","NA"] ] ,"GN":[,[,,"[3567]\\d{7}","\\d{8}"] ,[,,"30(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])\\d{4}","\\d{8}",,,"30241234"] -,[,,"55\\d{6}|6(?:0(?:2\\d|3[3467]|5[2457-9])|[24578]\\d{2}|3(?:[14]0|35))\\d{4}","\\d{8}",,,"60201234"] -,[,,"NA","NA"] +,[,,"55\\d{6}|6(?:0(?:2[0-35-9]|3[3467]|5[2457-9])|[24578]\\d{2}|3(?:[14]0|35))\\d{4}","\\d{8}",,,"60201234"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] +,[,,"78\\d{6}","\\d{8}",,,"78123456"] ,"GN",224,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"GP":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"590(?:1[12]|2[0-68]|3[28]|4[126-8]|5[067]|6[018]|[89]\\d)\\d{4}","\\d{9}",,,"590201234"] @@ -1762,6 +1860,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}",,,"18"] +,[,,"NA","NA"] ] ,"GQ":[,[,,"[23589]\\d{8}","\\d{9}"] ,[,,"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}","\\d{9}",,,"333091234"] @@ -1780,6 +1879,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"GR":[,[,,"[26-9]\\d{9}","\\d{10}"] ,[,,"2(?:1\\d{2}|2(?:3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[289][1-9])|3(?:1\\d|2[1-5]|3[1-4]|[45][1-3]|7[1-7]|8[1-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|2[1-3]|4[124]|5[1-6]|[39][1-4])|6(?:1\\d|3[124]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[134]|9[15-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-7]))\\d{6}","\\d{10}",,,"2123456789"] @@ -1800,6 +1900,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:00|12|66|99)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"GT":[,[,,"[2-7]\\d{7}|1[89]\\d{9}","\\d{8}(?:\\d{3})?"] ,[,,"[267][2-9]\\d{6}","\\d{8}",,,"22456789"] @@ -1818,6 +1919,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:10|2[03])","\\d{3}",,,"110"] +,[,,"NA","NA"] ] ,"GU":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[23678])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}","\\d{7}(?:\\d{3})?",,,"6713001234"] @@ -1831,6 +1933,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"671",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"GW":[,[,,"[3567]\\d{6}","\\d{7}"] ,[,,"3(?:2[0125]|3[1245]|4[12]|5[1-4]|70|9[1-467])\\d{4}","\\d{7}",,,"3201234"] @@ -1846,6 +1949,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[378]","\\d{3}",,,"113"] +,[,,"NA","NA"] ] ,"GY":[,[,,"[2-4679]\\d{6}","\\d{7}"] ,[,,"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}","\\d{7}",,,"2201234"] @@ -1861,6 +1965,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"91[123]","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"HK":[,[,,"[235-7]\\d{7}|8\\d{7,8}|9\\d{7,10}","\\d{8,11}"] ,[,,"[23]\\d{7}","\\d{8}",,,"21234567"] @@ -1881,6 +1986,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|99[29]","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"HN":[,[,,"[237-9]\\d{7}","\\d{8}"] ,[,,"2(?:2(?:0[019]|1[1-36]|[23]\\d|4[056]|5[57]|9[01])|4(?:2|3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:4[3-5]|5\\d|6[56]|74)|6(?:4[0-378]|[56]\\d|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[34])|8(?:79|8[0-35789]|9[1-57-9]))\\d{4}","\\d{8}",,,"22123456"] @@ -1896,6 +2002,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"199","\\d{3}",,,"199"] +,[,,"NA","NA"] ] ,"HR":[,[,,"[1-7]\\d{5,8}|[89]\\d{6,11}","\\d{6,12}"] ,[,,"(?:1|6[029])\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6}","\\d{6,9}",,,"12345678"] @@ -1930,6 +2037,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|92)|9[34]","\\d{2,3}",,,"112"] +,[,,"NA","NA"] ] ,"HT":[,[,,"[2-489]\\d{7}","\\d{8}"] ,[,,"2(?:[24]\\d|5[1-5]|94)\\d{5}","\\d{8}",,,"22453300"] @@ -1945,6 +2053,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[48]","\\d{3}",,,"118"] +,[,,"NA","NA"] ] ,"HU":[,[,,"[1-9]\\d{7,8}","\\d{6,9}"] ,[,,"(?:1\\d|2(?:1\\d|[2-9])|3[2-7]|4[24-9]|5[2-79]|6[23689]|7(?:1\\d|[2-9])|8[2-57-9]|9[2-69])\\d{6}","\\d{6,9}",,,"12345678"] @@ -1963,6 +2072,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[457]|12)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"ID":[,[,,"[1-9]\\d{6,10}","\\d{5,11}"] ,[,,"2[124]\\d{7,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|2[1-578]|3[1-68]|4[1-3]|5[1-8]|6[1-3568]|7[0-46]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[1246-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:19?|[25]\\d|3[1-469]|4[1-6])|7(?:1[1-46-9]|2[14-9]|[36]\\d|4[1-8]|5[1-9]|7[0-36-9])|9(?:0[12]|1[0134-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}","\\d{5,10}",,,"612345678"] @@ -1989,6 +2099,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[02389]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"IE":[,[,,"[124-9]\\d{6,9}","\\d{5,10}"] ,[,,"1\\d{7,8}|2(?:1\\d{6,7}|[24-9]\\d{5}|3\\d{5,7})|4(?:0[24]\\d{5}|[1269]\\d{7}|[34]\\d{5,7}|5\\d{6}|7\\d{5}|8[0-46-9]\\d{7})|5(?:0[45]\\d{5}|1\\d{6}|2\\d{5,7}|[3679]\\d{7}|8\\d{5})|6(?:1\\d{6}|4\\d{5,7}|[237-9]\\d{5}|[56]\\d{7})|7[14]\\d{7}|9(?:1\\d{6}|[04]\\d{7}|[3-9]\\d{5})","\\d{5,10}",,,"2212345"] @@ -2021,10 +2132,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"18[59]0\\d{6}","\\d{10}",,,"1850123456"] ,[,,"818\\d{6}","\\d{9}",,,"818123456"] ,,[,,"112|999","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"IL":[,[,,"[17]\\d{6,9}|[2-589]\\d{3}(?:\\d{3,6})?|6\\d{3}","\\d{4,10}"] ,[,,"(?:[2-489]|7[2-46-8])\\d{7}","\\d{7,9}",,,"21234567"] -,[,,"5[024679]\\d{7}","\\d{9}",,,"501234567"] +,[,,"5(?:[0246-9]\\d{2}|5(?:22|33|44|5[58]|66|77|88))\\d{5}","\\d{9}",,,"501234567"] ,[,,"1(?:80[019]\\d{3}|255)\\d{3}","\\d{7,10}",,,"1800123456"] ,[,,"1(?:212|(?:919|200)\\d{2})\\d{4}","\\d{8,10}",,,"1919123456"] ,[,,"1700\\d{6}","\\d{10}",,,"1700123456"] @@ -2042,6 +2154,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"$1","",0] ,[,"(1212)(\\d{2})(\\d{2})","$1-$2-$3",["121"] ,"$1","",0] +,[,"(1599)(\\d{6})","$1-$2",["15"] +,"$1","",0] ,[,"(\\d{4})","*$1",["[2-689]"] ,"$1","",0] ] @@ -2049,6 +2163,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"1700\\d{6}|[2-689]\\d{3}","\\d{4,10}",,,"1700123456"] ,[,,"[2-689]\\d{3}","\\d{4}",,,"2250"] ,,[,,"1(?:0[012]|12)","\\d{3}",,,"112"] +,[,,"1599\\d{6}","\\d{10}",,,"1599123456"] ] ,"IM":[,[,,"[135789]\\d{6,9}","\\d{6,10}"] ,[,,"1624\\d{6}","\\d{6,10}",,,"1624456789"] @@ -2062,6 +2177,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"3(?:08162\\d|3\\d{5}|4(?:40[49]06|5624\\d)|7(?:0624\\d|2299\\d))\\d{3}|55\\d{8}","\\d{10}",,,"5512345678"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"IN":[,[,,"1\\d{7,12}|[2-9]\\d{9,10}","\\d{6,13}"] ,[,,"(?:11|2[02]|33|4[04]|79)[2-6]\\d{7}|80[2-46]\\d{7}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[126-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-6]\\d{6}|(?:(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[13-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1-5]|4[25-8]|5[125689]|6[235-7]|7[157-9]|8[2-467])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24-58]|7[23-689]|8[1-6])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d|7(?:(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|9\\d)\\d|8(?:2[0-6]|[013-8]\\d)))[2-6]\\d{5}","\\d{6,10}",,,"1123456789"] @@ -2096,6 +2212,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"1(?:600\\d{6}|8(?:0(?:0\\d{4,8}|3\\d{9})|6(?:0\\d{7}|[12]\\d{9})))","\\d{8,13}",,,"1800123456"] ,[,,"1860\\d{7}","\\d{11}",,,"18603451234"] ,,[,,"1(?:0[0128]|12|298)|2611","\\d{3,4}",,,"108"] +,[,,"NA","NA"] ] ,"IO":[,[,,"3\\d{6}","\\d{7}"] ,[,,"37\\d{5}","\\d{7}",,,"3709100"] @@ -2111,6 +2228,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"IQ":[,[,,"[1-7]\\d{7,9}","\\d{6,10}"] ,[,,"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}","\\d{6,9}",,,"12345678"] @@ -2131,10 +2249,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"IR":[,[,,"[2-6]\\d{4,9}|9(?:[134]\\d{8}|9\\d{2,8})|[178]\\d{9}","\\d{4,10}"] ,[,,"2(?:1[2-9]\\d{2,7}|51\\d{3,7})|(?:241|3(?:11|51)|441|5[14]1)\\d{4,7}|(?:3(?:34|41)|6(?:11|52))\\d{6,7}|(?:1(?:[134589][12]|[27][1-4])|2(?:2[189]|[3689][12]|42|5[256]|7[34])|3(?:12|2[1-4]|3[125]|4[24-9]|5[23]|[6-9][12])|4(?:[135-9][12]|2[1-467]|4[2-4])|5(?:12|2[89]|3[1-5]|4[2-8]|[5-7][12]|8[1245])|6(?:12|[347-9][12]|51|6[1-6])|7(?:[13589][12]|2[1289]|4[1-4]|6[1-6]|7[1-3])|8(?:[145][12]|3[124578]|6[1256]|7[1245]))\\d{7}","\\d{5,10}",,,"2123456789"] -,[,,"9(?:1\\d|3[124-8])\\d{7}","\\d{10}",,,"9123456789"] +,[,,"9(?:1\\d|3[124-9])\\d{7}","\\d{10}",,,"9123456789"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -2153,10 +2272,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"9990\\d{0,6}","\\d{4,10}",,,"9990123456"] ,,[,,"1(?:1[025]|25)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"IS":[,[,,"[4-9]\\d{6}|38\\d{7}","\\d{7,9}"] ,[,,"(?:4(?:1[0-245]|2[0-7]|[37][0-8]|4[0245]|5[0-356]|6\\d|8[0-46-8]|9[013-79])|5(?:05|[156]\\d|2[02578]|3[013-6]|4[03-6]|7[0-2578]|8[0-25-9]|9[013-689])|87[23])\\d{4}","\\d{7}",,,"4101234"] -,[,,"38[59]\\d{6}|(?:6(?:1[0-8]|2[0-8]|3[0-27-9]|4[0-29]|5[029]|[67][0-69]|[89]\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}",,,"6101234"] +,[,,"38[59]\\d{6}|(?:6(?:1[0-8]|3[0-27-9]|4[0-27]|5[0-29]|[67][0-69]|9\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}",,,"6101234"] ,[,,"800\\d{4}","\\d{7}",,,"8001234"] ,[,,"90\\d{5}","\\d{7}",,,"9011234"] ,[,,"NA","NA"] @@ -2171,10 +2291,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"388\\d{6}|(?:6(?:2[0-8]|49|8\\d)|8(?:2[6-9]|[38]\\d|50|7[014-9])|95[48])\\d{4}","\\d{7,9}",,,"388123456"] ] -,"IT":[,[,,"[0189]\\d{5,10}|3\\d{8,9}","\\d{6,11}"] +,"IT":[,[,,"[0189]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})","\\d{6,11}"] ,[,,"0(?:[26]\\d{4,9}|[13-57-9](?:[0159]\\d{4,8}|[2-46-8]\\d{5,8}))","\\d{6,11}",,,"0212345678"] -,[,,"3\\d{8,9}","\\d{9,10}",,,"312345678"] +,[,,"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})","\\d{9,11}",,,"3123456789"] ,[,,"80(?:0\\d{6}|3\\d{3})","\\d{6,9}",,,"800123456"] ,[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|9\\d{6})","\\d{6,9}",,,"899123456"] ,[,,"84[78]\\d{6,7}","\\d{9,10}",,,"8481234567"] @@ -2196,6 +2317,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"","",0] ,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13]|8(?:00|4[78]|99)"] ,"","",0] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3"] +,"","",0] ,[,"(\\d{3})(\\d{3,6})","$1 $2",["8(?:03|92)"] ,"","",0] ] @@ -2203,6 +2326,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"11[2358]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"JE":[,[,,"[135789]\\d{6,9}","\\d{6,10}"] ,[,,"1534\\d{6}","\\d{6,10}",,,"1534456789"] @@ -2216,6 +2340,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))\\d{4}|55\\d{8}","\\d{10}",,,"5512345678"] ,,[,,"112|999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027-9]|[23]\\d|40|5[06]|6[2-489]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468]))\\d{4}","\\d{7}(?:\\d{3})?",,,"8765123456"] @@ -2229,43 +2354,49 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"876",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[09]","\\d{3}",,,"119"] +,[,,"NA","NA"] ] ,"JO":[,[,,"[235-9]\\d{7,8}","\\d{7,9}"] -,[,,"[2356][2-8]\\d{6}","\\d{7,8}",,,"62001234"] -,[,,"7(?:[1-8]\\d|9[02-9])\\d{6}","\\d{9}",,,"790123456"] +,[,,"(?:2[67]|32|53|6[2-5]|87)\\d{6}","\\d{7,8}",,,"62001234"] +,[,,"7(?:45|5\\d|7[2-79]|8[5-8]|9[035-9])\\d{6}","\\d{9}",,,"790123456"] ,[,,"80\\d{6}","\\d{8}",,,"80012345"] ,[,,"900\\d{5}","\\d{8}",,,"90012345"] ,[,,"85\\d{6}","\\d{8}",,,"85012345"] ,[,,"70\\d{7}","\\d{9}",,,"700123456"] ,[,,"NA","NA"] -,"JO",962,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]"] +,"JO",962,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"] ,"(0$1)","",0] -,[,"(7)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["7[457-9]"] +,[,"(7)(\\d{4})(\\d{4})","$1 $2 $3",["7[457-9]"] ,"0$1","",0] -,[,"(\\d{3})(\\d{5,6})","$1 $2",["70|[89]"] +,[,"(\\d{3})(\\d{5,6})","$1 $2",["70|8[0158]|9"] ,"0$1","",0] ] -,,[,,"NA","NA"] +,,[,,"74(?:66|77)\\d{5}","\\d{9}",,,"746612345"] ,,,[,,"NA","NA"] -,[,,"8(?:10|[78]\\d)\\d{5}","\\d{8}",,,"87101234"] -,,[,,"112|911","\\d{3}",,,"112"] +,[,,"8(?:10|8\\d)\\d{5}","\\d{8}",,,"88101234"] +,,[,,"1(?:12|91)|911","\\d{3}",,,"112"] +,[,,"NA","NA"] ] -,"JP":[,[,,"[1-9]\\d{8,9}|0(?:7\\d{5,6}|8\\d{7})","\\d{7,10}"] +,"JP":[,[,,"[1-9]\\d{8,9}|0(?:3\\d{9}|7\\d{5,7}|8\\d{7})","\\d{7,11}"] ,[,,"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\\d|[36][1-9]\\d|4(?:6[02-8]|[2-578]\\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\\d)|7(?:3[4-9]|4[02-9]|[25-9]\\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\\d)|9(?:[679][1-9]|[2-58]\\d))\\d{6}","\\d{9}",,,"312345678"] ,[,,"(?:[79]0\\d|80[1-9])\\d{7}","\\d{10}",,,"7012345678"] -,[,,"120\\d{6}|800\\d{7}|0(?:777(?:[01]\\d{2}|5\\d{3})|882[1245]\\d{4})","\\d{7,10}",,,"120123456"] +,[,,"120\\d{6}|800\\d{7}|0(?:777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,10}",,,"120123456"] ,[,,"990\\d{6}","\\d{9}",,,"990123456"] ,[,,"NA","NA"] ,[,,"60\\d{7}","\\d{9}",,,"601234567"] -,[,,"50\\d{8}","\\d{10}",,,"5012345678"] +,[,,"(?:037|50)\\d{8}","\\d{10,11}",,,"5012345678"] ,"JP",81,"010","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"] ,"0$1","",0] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"] ,"0$1","",0] -,[,"(\\d{3})(\\d{4,5})","$1-$2",["077"] +,[,"(\\d{3})(\\d{4})","$1-$2",["077"] +,"0$1","",0] +,[,"(\\d{3})(\\d{2})(\\d{3,4})","$1-$2-$3",["077"] ,"0$1","",0] ,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["088"] ,"0$1","",0] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1-$2-$3",["037"] +,"0$1","",0] ,[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]0|80[1-9]"] ,"0$1","",0] ,[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"] @@ -2282,27 +2413,31 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ] ,,[,,"20\\d{8}","\\d{10}",,,"2012345678"] -,,,[,,"0(?:777(?:[01]\\d{2}|5\\d{3})|882[1245]\\d{4})","\\d{7,9}",,,"0777012"] +,,,[,,"0(?:37\\d{8}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,11}",,,"0777012"] ,[,,"570\\d{6}","\\d{9}",,,"570123456"] ,1,[,,"11[09]","\\d{3}",,,"110"] +,[,,"NA","NA"] ] -,"KE":[,[,,"\\d{6,10}","\\d{4,10}"] +,"KE":[,[,,"20\\d{4,7}|[4-9]\\d{5,9}","\\d{4,10}"] ,[,,"(?:20|4[0-6]|5\\d|6[0-24-9])\\d{4,7}","\\d{4,9}",,,"202012345"] -,[,,"7(?:0[0-5]|[123]\\d|5[0-3]|7[0-5])\\d{6}","\\d{9}",,,"712123456"] -,[,,"8(?:00|88)\\d{6,7}","\\d{9,10}",,,"800123456"] -,[,,"9(?:00|1)\\d{6,7}","\\d{8,10}",,,"900123456"] +,[,,"7(?:0[0-5]|[123]\\d|5[0-4]|7[0-5]|8[6-9])\\d{6}","\\d{9}",,,"712123456"] +,[,,"800[245-8]\\d{5,6}","\\d{9,10}",,,"800223456"] +,[,,"9(?:00[2-578]|11\\d)\\d{5}","\\d{9}",,,"900223456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"KE",254,"000","0",,,"0",,,,[[,"(\\d{2})(\\d{4,7})","$1 $2",["[2-6]|91"] +,"KE",254,"000","0",,,"0",,,,[[,"(\\d{2})(\\d{4,7})","$1 $2",["[24-6]"] +,"0$1","",0] +,[,"(\\d{3})(\\d{6,7})","$1 $2",["7"] ,"0$1","",0] -,[,"(\\d{3})(\\d{6,7})","$1 $2",["[78]|90"] +,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"] ,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"KG":[,[,,"[356-8]\\d{8,9}","\\d{5,10}"] ,[,,"(?:3(?:1(?:2\\d|3[1-9]|47|5[02]|6[1-8])|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6[0-4])|5(?:22|3[4-7]|59|6[0-5])|6(?:22|5[35-7]|6[0-3])|7(?:22|3[468]|4[1-9]|59|6\\d|7[5-7])|9(?:22|4[1-8]|6[0-8]))|6(?:09|12|2[2-4])\\d)\\d{5}","\\d{5,10}",,,"312123456"] @@ -2323,6 +2458,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[123]","\\d{3}",,,"101"] +,[,,"NA","NA"] ] ,"KH":[,[,,"[1-9]\\d{7,9}","\\d{6,10}"] ,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[567][2-5])[2-46-9]\\d{5}","\\d{6,8}",,,"23456789"] @@ -2341,6 +2477,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[789]|666","\\d{3}",,,"117"] +,[,,"NA","NA"] ] ,"KI":[,[,,"[2-689]\\d{4}","\\d{5}"] ,[,,"(?:[234]\\d|50|8[1-5])\\d{3}","\\d{5}",,,"31234"] @@ -2354,6 +2491,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[2349]","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"KM":[,[,,"[379]\\d{6}","\\d{7}"] ,[,,"7(?:6[0-37-9]|7[0-57-9])\\d{4}","\\d{7}",,,"7712345"] @@ -2369,6 +2507,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] ,"KN":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"869(?:2(?:29|36)|302|4(?:6[5-9]|70))\\d{4}","\\d{7}(?:\\d{3})?",,,"8692361234"] @@ -2382,6 +2521,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"869",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"333|9(?:11|99)","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"KP":[,[,,"1\\d{9}|[28]\\d{7}","\\d{6,8}|\\d{10}"] ,[,,"2\\d{7}|85\\d{6}","\\d{6,8}",,,"21234567"] @@ -2402,6 +2542,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}","\\d{8}",,,"23821234"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"KR":[,[,,"[1-7]\\d{3,9}|8\\d{8}","\\d{4,10}"] ,[,,"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})","\\d{4,10}",,,"22123456"] @@ -2436,10 +2577,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88))\\d{4}","\\d{8}",,,"15441234"] ,,[,,"11[29]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] -,"KW":[,[,,"[12569]\\d{6,7}","\\d{7,8}"] +,"KW":[,[,,"[12569]\\d{6,7}|65816\\d{6}","\\d{7,8}|\\d{11}"] ,[,,"(?:18\\d|2(?:[23]\\d{2}|4[1-35-9]\\d|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7])))\\d{4}","\\d{7,8}",,,"22345678"] -,[,,"(?:5(?:0[0-26]|5\\d)|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[69])|9(?:0[09]|4[049]|66|[79]\\d))\\d{5}","\\d{8}",,,"50012345"] +,[,,"(?:5(?:0[0-26]|5\\d)|6(?:0[034679]|5(?:[015-79]|8(?:[02-9]|1[0-57-9]))|6\\d|7[067]|9[69])|9(?:0[09]|4[049]|66|[79]\\d))\\d{5}","\\d{8}",,,"50012345"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -2449,11 +2591,14 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"","",0] ,[,"(5[05]\\d)(\\d{5})","$1 $2",["5"] ,"","",0] +,[,"(65816)(\\d{6})","$1 $2",["65816"] +,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"65816\\d{6}","\\d{11}",,,"65816123456"] ] ,"KY":[,[,,"[3589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:6[6-9]|77)|8(?:00|1[45]|25|4[89]|88)|9(?:14|4[035-9]))\\d{4}","\\d{7}(?:\\d{3})?",,,"3452221234"] @@ -2467,10 +2612,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"345",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"KZ":[,[,,"(?:7\\d{2}|80[09])\\d{7}","\\d{10}"] -,[,,"7(?:1(?:0(?:[23]\\d|4[023]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[1-79]|4[0-35-9]|59)|4(?:2\\d|3[013-79]|4[0-8]|5[1-79])|5(?:2\\d|3[1-8]|4[1-7]|59)|6(?:2\\d|[34]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679]|)|3(?:[234]\\d|5[139]|)|4(?:2\\d|3[1235-9]|59)|5(?:[23]\\d|4[01246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[23]\\d|40|5[279]|7\\d)|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))|3622)\\d{5}","\\d{10}",,,"7123456789"] -,[,,"7(?:0[01257]|6[02-4]|7[157])\\d{7}","\\d{10}",,,"7710009998"] +,[,,"7(?:1(?:0(?:[23]\\d|4[023]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[1-79]|4[0-35-9]|59)|4(?:2\\d|3[013-79]|4[0-8]|5[1-79])|5(?:2\\d|3[1-8]|4[1-7]|59)|6(?:[234]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[234]\\d|5[139])|4(?:2\\d|3[1235-9]|59)|5(?:[23]\\d|4[01246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[23]\\d|40|5[279]|7\\d)|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))|3622)\\d{5}","\\d{10}",,,"7123456789"] +,[,,"7(?:0[01257]|6[02-4]|7[1578])\\d{7}","\\d{10}",,,"7710009998"] ,[,,"800\\d{7}","\\d{10}",,,"8001234567"] ,[,,"809\\d{7}","\\d{10}",,,"8091234567"] ,[,,"NA","NA"] @@ -2480,6 +2626,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"751\\d{7}","\\d{10}",,,"7511234567"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"LA":[,[,,"[2-57]\\d{7,9}","\\d{6,10}"] ,[,,"(?:[2-57]1|54)\\d{6}","\\d{6,8}",,,"21212862"] @@ -2498,10 +2645,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[015]","\\d{3}",,,"190"] +,[,,"NA","NA"] ] ,"LB":[,[,,"[13-9]\\d{6,7}","\\d{7,8}"] ,[,,"(?:[14-6]\\d{2}|7(?:[2-57-9]\\d|62)|[89][2-9]\\d)\\d{4}","\\d{7}",,,"1123456"] -,[,,"(?:3\\d|7(?:[01]\\d|6[136-9]))\\d{5}","\\d{7,8}",,,"71123456"] +,[,,"(?:3\\d|7(?:[01]\\d|6[01346-9]))\\d{5}","\\d{7,8}",,,"71123456"] ,[,,"NA","NA"] ,[,,"9[01]\\d{6}","\\d{8}",,,"90123456"] ,[,,"8[01]\\d{6}","\\d{8}",,,"80123456"] @@ -2509,13 +2657,14 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,"LB",961,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-6]|7(?:[2-57-9]|62)|[89][2-9]"] ,"0$1","",0] -,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[136-9])"] -,"0$1","",0] +,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[01346-9])"] +,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|40|75)|999","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"LC":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"758(?:234|4(?:5[0-9]|6[2-9]|8[0-2])|638|758)\\d{4}","\\d{7}(?:\\d{3})?",,,"7582345678"] @@ -2529,6 +2678,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"758",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"LI":[,[,,"(?:66|80|90)\\d{7}|[237-9]\\d{6}","\\d{7,9}"] ,[,,"(?:2(?:17|3\\d|6[02-58]|96)|3(?:02|7[01357]|8[048]|9[0269])|870)\\d{4}","\\d{7}",,,"2345678"] @@ -2551,10 +2701,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[278]|44)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"LK":[,[,,"[1-9]\\d{8}","\\d{7,9}"] ,[,,"(?:[189]1|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}","\\d{7,9}",,,"112345678"] -,[,,"7[12578]\\d{7}","\\d{9}",,,"712345678"] +,[,,"7[125-8]\\d{7}","\\d{9}",,,"712345678"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -2569,10 +2720,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[0189]","\\d{3}",,,"119"] +,[,,"NA","NA"] ] ,"LR":[,[,,"(?:[29]\\d|[4-6]|7\\d{1,2}|[38]\\d{2})\\d{6}","\\d{7,9}"] ,[,,"2\\d{7}","\\d{8}",,,"21234567"] -,[,,"(?:4[67]|5\\d|6[4-8]|7(?:76\\d|\\d{2})|880\\d)\\d{5}","\\d{7,9}",,,"4612345"] +,[,,"(?:4[67]|5\\d|6[4-8]|7(?:7[67]\\d|\\d{2})|880\\d)\\d{5}","\\d{7,9}",,,"4612345"] ,[,,"NA","NA"] ,[,,"90\\d{6}","\\d{8}",,,"90123456"] ,[,,"NA","NA"] @@ -2591,6 +2743,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"355|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"LS":[,[,,"[2568]\\d{7}","\\d{8}"] ,[,,"2\\d{7}","\\d{8}",,,"22123456"] @@ -2606,6 +2759,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[257]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"LT":[,[,,"[3-9]\\d{7}","\\d{8}"] ,[,,"(?:3[1478]|4[124-6]|52)\\d{6}","\\d{8}",,,"31234567"] @@ -2615,17 +2769,20 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,[,,"700\\d{5}","\\d{8}",,,"70012345"] ,[,,"NA","NA"] -,"LT",370,"00","8",,,"8",,,,[[,"([34]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["37|4(?:1|5[45]|6[2-4])"] -,"8 $1","",0] -,[,"([3-9]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["3[148]|4(?:[24]|6[09])|5(?:[0189]|28)|[6-9]"] -,"8 $1","",0] -,[,"(5)(2[0-79]\\d)(\\d{4})","$1 $2 $3",["52[0-79]"] +,"LT",370,"00","8",,,"8",,,,[[,"([34]\\d)(\\d{6})","$1 $2",["37|4(?:1|5[45]|6[2-4])"] +,"(8-$1)","",0] +,[,"([3-6]\\d{2})(\\d{5})","$1 $2",["3[148]|4(?:[24]|6[09])|528|6"] +,"(8-$1)","",0] +,[,"([7-9]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"] ,"8 $1","",0] +,[,"(5)(2\\d{2})(\\d{4})","$1 $2 $3",["52[0-79]"] +,"(8-$1)","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0(?:11?|22?|33?)|1(?:0[123]|12)","\\d{2,3}",,,"112"] +,[,,"NA","NA"] ] ,"LU":[,[,,"[24-9]\\d{3,10}|3(?:[0-46-9]\\d{2,9}|5[013-9]\\d{1,8})","\\d{4,11}"] ,[,,"(?:2(?:2\\d{1,2}|3[2-9]|[67]\\d|4[1-8]\\d?|5[1-5]\\d?|9[0-24-9]\\d?)|3(?:[059][05-9]|[13]\\d|[26][015-9]|4[0-26-9]|7[0-389]|8[08])\\d?|4\\d{2,3}|5(?:[01458]\\d|[27][0-69]|3[0-3]|[69][0-7])\\d?|7(?:1[019]|2[05-9]|3[05]|[45][07-9]|[679][089]|8[06-9])\\d?|8(?:0[2-9]|1[0-36-9]|3[3-9]|[469]9|[58][7-9]|7[89])\\d?|9(?:0[89]|2[0-49]|37|49|5[0-27-9]|7[7-9]|9[0-478])\\d?)\\d{1,7}","\\d{4,11}",,,"27123456"] @@ -2658,6 +2815,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[23]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"LV":[,[,,"[2689]\\d{7}","\\d{8}"] ,[,,"6\\d{7}","\\d{8}",,,"61234567"] @@ -2673,6 +2831,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0[123]|112","\\d{2,3}",,,"112"] +,[,,"NA","NA"] ] ,"LY":[,[,,"[25679]\\d{8}","\\d{7,9}"] ,[,,"(?:2[1345]|5[1347]|6[123479]|71)\\d{7}","\\d{7,9}",,,"212345678"] @@ -2688,6 +2847,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[013]","\\d{3}",,,"193"] +,[,,"NA","NA"] ] ,"MA":[,[,,"[5689]\\d{8}","\\d{9}"] ,[,,"5(?:2(?:(?:[015-7]\\d|2[2-9]|3[2-57]|4[2-8]|8[235-9]|)\\d|9(?:0\\d|[89]0))|3(?:(?:[0-4]\\d|[57][2-9]|6[235-8]|9[3-9])\\d|8(?:0\\d|[89]0)))\\d{4}","\\d{9}",,,"520123456"] @@ -2710,6 +2870,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:[59]|77)","\\d{2,3}",,,"15"] +,[,,"NA","NA"] ] ,"MC":[,[,,"[4689]\\d{7,8}","\\d{8,9}"] ,[,,"9[2-47-9]\\d{6}","\\d{8}",,,"99123456"] @@ -2730,6 +2891,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"8\\d{7}","\\d{8}"] ,[,,"NA","NA"] ,,[,,"1(?:12|[578])","\\d{2,3}",,,"112"] +,[,,"NA","NA"] ] ,"MD":[,[,,"[256-9]\\d{7}","\\d{8}"] ,[,,"(?:2(?:1[0569]|2\\d|3[015-7]|4[1-46-9]|5[0-24689]|6[2-589]|7[1-37]|9[1347-9])|5(?:33|5[257]))\\d{5}","\\d{5,8}",,,"22212345"] @@ -2750,6 +2912,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"8(?:03|14)\\d{5}","\\d{8}",,,"80312345"] ,,[,,"112|90[123]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"ME":[,[,,"[2-9]\\d{7,8}","\\d{6,9}"] ,[,,"(?:20[2-8]|3(?:0[2-7]|1[35-7]|2[3567]|3[4-7])|4(?:0[237]|1[27])|5(?:0[47]|1[27]|2[378]))\\d{5}","\\d{6,8}",,,"30234567"] @@ -2768,6 +2931,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"77\\d{6}","\\d{8}",,,"77273012"] ,,[,,"1(?:12|2[234])","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"MG":[,[,,"[23]\\d{8}","\\d{7,9}"] ,[,,"2(?:0(?:(?:2\\d|4[47]|5[3467]|6[279]|8[268]|9[245])\\d|7(?:2[29]|[35]\\d))|210\\d)\\d{4}","\\d{7,9}",,,"202123456"] @@ -2783,6 +2947,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11?[78]","\\d{2,3}",,,"117"] +,[,,"NA","NA"] ] ,"MF":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"590(?:10|2[79]|5[128]|[78]7)\\d{4}","\\d{9}",,,"590271234"] @@ -2796,6 +2961,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}",,,"18"] +,[,,"NA","NA"] ] ,"MH":[,[,,"[2-6]\\d{6}","\\d{7}"] ,[,,"(?:247|528|625)\\d{4}","\\d{7}",,,"2471234"] @@ -2811,6 +2977,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"MK":[,[,,"[2-578]\\d{7}","\\d{8}"] ,[,,"(?:2(?:[23]\\d|5[125]|61)|3(?:1[3-6]|2[2-6]|3[2-5]|4[235])|4(?:[23][2-6]|4[3-6]|5[25]|6[25-8]|7[24-6]|8[4-6]))\\d{5}","\\d{6,8}",,,"22212345"] @@ -2831,6 +2998,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|9[234])","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"ML":[,[,,"[246-8]\\d{7}","\\d{8}"] ,[,,"(?:2(?:0(?:2[0-589]|7[027-9])|1(?:2[5-7]|[3-689]\\d))|442\\d)\\d{4}","\\d{8}",,,"20212345"] @@ -2846,32 +3014,34 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] -,"MM":[,[,,"[124-8]\\d{5,7}|9\\d{7,8}","\\d{5,9}"] -,[,,"(?:1\\d|2|4[2-6]|5[2-9]|6\\d|7[0-5]|8[1-6])\\d{5}|1333\\d{4}","\\d{5,8}",,,"1234567"] -,[,,"9(?:[25689]\\d|444)\\d{5}","\\d{8,9}",,,"92123456"] +,"MM":[,[,,"[124-8]\\d{5,7}|9(?:[25689]|[47]\\d)\\d{6}","\\d{5,9}"] +,[,,"(?:1\\d|2|4[2-6]|5[2-9]|6(?:[0-689]|7\\d?)|7[0-5]|8(?:[2-6]|1\\d?))\\d{5}|1333\\d{4}","\\d{5,8}",,,"1234567"] +,[,,"9(?:[25689]|[47]\\d)\\d{6}","\\d{8,9}",,,"92123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"MM",95,"00",,,,,,,,[[,"(1)(\\d{3})(\\d{3})","$1 $2 $3",["1"] -,"","",0] +,"MM",95,"00","0",,,"0",,,,[[,"(1)(\\d{3})(\\d{3})","$1 $2 $3",["1"] +,"0$1","",0] ,[,"(1)(3)(33\\d)(\\d{3})","$1 $2 $3 $4",["133","1333"] -,"","",0] +,"0$1","",0] ,[,"(2)(\\d{2})(\\d{3})","$1 $2 $3",["2"] -,"","",0] +,"0$1","",0] +,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["67|81"] +,"0$1","",0] ,[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[4-8]"] -,"","",0] -,[,"(9444)(\\d{5})","$1 $2",["94"] -,"","",0] -,[,"(9)([25689]\\d{2})(\\d{4})","$1 $2 $3",["9[25689]"] -,"","",0] +,"0$1","",0] +,[,"(9)(\\d{3})(\\d{4,5})","$1 $2 $3",["9[24-9]"] +,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"199","\\d{3}",,,"199"] +,[,,"NA","NA"] ] ,"MN":[,[,,"[12]\\d{7,9}|[57-9]\\d{7}","\\d{6,10}"] ,[,,"[12](?:1\\d|2(?:[1-3]\\d?|7\\d)|3[2-8]\\d{1,2}|4[2-68]\\d{1,2}|5[1-4689]\\d{1,2})\\d{5}|(?:5[0568]|70)\\d{6}","\\d{6,10}",,,"70123456"] @@ -2896,6 +3066,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[0-3]","\\d{3}",,,"102"] +,[,,"NA","NA"] ] ,"MO":[,[,,"[268]\\d{7}","\\d{8}"] ,[,,"(?:28[2-57-9]|8[2-57-9]\\d)\\d{5}","\\d{8}",,,"28212345"] @@ -2911,6 +3082,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"MP":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[589]|8[3-9]8|989)\\d{4}","\\d{7}(?:\\d{3})?",,,"6702345678"] @@ -2924,6 +3096,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"670",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"MQ":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"596(?:0[2-5]|[12]0|3[05-9]|4[024-8]|[5-7]\\d|89|9[4-8])\\d{4}","\\d{9}",,,"596301234"] @@ -2939,6 +3112,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|[578])","\\d{2,3}",,,"15"] +,[,,"NA","NA"] ] ,"MR":[,[,,"[2-48]\\d{7}","\\d{8}"] ,[,,"25[08]\\d{5}|35\\d{6}|45[1-7]\\d{5}","\\d{8}",,,"35123456"] @@ -2954,6 +3128,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] ,"MS":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"664491\\d{4}","\\d{7}(?:\\d{3})?",,,"6644912345"] @@ -2967,6 +3142,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"664",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"MT":[,[,,"[2579]\\d{7}","\\d{8}"] ,[,,"2(?:0(?:1[0-6]|[69]\\d)|[1-357]\\d{2})\\d{4}","\\d{8}",,,"21001234"] @@ -2982,6 +3158,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"MU":[,[,,"[2-9]\\d{6}","\\d{7}"] ,[,,"(?:2(?:[034789]\\d|1[0-7])|4(?:[013-8]\\d|2[4-7])|[56]\\d{2}|8(?:14|3[129]))\\d{4}","\\d{7}",,,"2012345"] @@ -2997,16 +3174,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[45]|99\\d","\\d{3}",,,"999"] +,[,,"NA","NA"] ] -,"MV":[,[,,"[367]\\d{6}|9(?:00\\d{7}|\\d{6})","\\d{7,10}"] +,"MV":[,[,,"[3467]\\d{6}|9(?:00\\d{7}|\\d{6})","\\d{7,10}"] ,[,,"(?:3(?:0[01]|3[0-59]|)|6(?:[567][02468]|8[024689]|90))\\d{4}","\\d{7}",,,"6701234"] -,[,,"(?:7[3-9]|9[6-9])\\d{5}","\\d{7}",,,"7712345"] +,[,,"(?:46[46]|7[3-9]\\d|9[6-9]\\d)\\d{4}","\\d{7}",,,"7712345"] ,[,,"NA","NA"] ,[,,"900\\d{7}","\\d{10}",,,"9001234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"MV",960,"0(?:0|19)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1-$2",["[367]|9(?:[1-9]|0[1-9])"] +,"MV",960,"0(?:0|19)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1-$2",["[3467]|9(?:[1-9]|0[1-9])"] ,"","",0] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["900"] ,"","",0] @@ -3015,10 +3193,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:02|19)","\\d{3}",,,"102"] +,[,,"NA","NA"] ] -,"MW":[,[,,"(?:[13-5]|[27]\\d{2}|[89](?:\\d{2})?)\\d{6}","\\d{7,9}"] +,"MW":[,[,,"(?:[3-5]|[27]\\d{2}|[189](?:\\d{2})?)\\d{6}","\\d{7,9}"] ,[,,"(?:1[2-9]|21\\d{2})\\d{5}","\\d{7,9}",,,"1234567"] -,[,,"(?:[3-5]|77|8(?:8\\d)?|9(?:9\\d)?)\\d{6}","\\d{7,9}",,,"991234567"] +,[,,"(?:111|[3-5]|77\\d|8(?:8\\d)?|9(?:9\\d)?)\\d{6}","\\d{7,9}",,,"991234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -3028,15 +3207,16 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"] ,"0$1","",0] -,[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"] +,[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1789]"] ,"0$1","",0] -,[,"(\\d)(\\d{3,4})(\\d{3,4})","$1 $2 $3",["[89]"] +,[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89]"] ,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"199|99[789]","\\d{3}",,,"997"] +,[,,"NA","NA"] ] ,"MX":[,[,,"[1-9]\\d{9,10}","\\d{7,11}"] ,[,,"(?:33|55|81)\\d{8}|(?:2(?:2[2-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[234][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7}","\\d{7,10}",,,"2221234567"] @@ -3068,6 +3248,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"06[568]|911","\\d{3}",,,"066"] +,[,,"NA","NA"] ] ,"MY":[,[,,"[13-9]\\d{7,9}","\\d{6,10}"] ,[,,"(?:3\\d{2}|[4-79]\\d|8[2-9])\\d{6}","\\d{6,9}",,,"312345678"] @@ -3094,16 +3275,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"MZ":[,[,,"[28]\\d{7,8}","\\d{8,9}"] ,[,,"2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}","\\d{8}",,,"21123456"] -,[,,"8[24]\\d{7}","\\d{9}",,,"821234567"] +,[,,"8[246]\\d{7}","\\d{9}",,,"821234567"] ,[,,"800\\d{6}","\\d{9}",,,"800123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"MZ",258,"00",,,,,,,,[[,"([28]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[24]"] +,"MZ",258,"00",,,,,,,,[[,"([28]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[246]"] ,"","",0] ,[,"(80\\d)(\\d{3})(\\d{3})","$1 $2 $3",["80"] ,"","",0] @@ -3112,6 +3294,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[79]|9[78])","\\d{3}",,,"119"] +,[,,"NA","NA"] ] ,"NA":[,[,,"[68]\\d{7,8}","\\d{8,9}"] ,[,,"6(?:1(?:17|2(?:[0189]\\d|[23-6]|7\\d?)|3(?:2\\d|3[378])|4[01]|69|7[014])|2(?:17|25|5(?:[0-36-8]|4\\d?)|69|70)|3(?:17|2(?:[0237]\\d?|[14-689])|34|6[29]|7[01]|81)|4(?:17|2(?:[012]|7?)|4(?:[06]|1\\d)|5(?:[01357]|[25]\\d?)|69|7[01])|5(?:17|2(?:[0459]|[23678]\\d?)|69|7[01])|6(?:17|2(?:5|6\\d?)|38|42|69|7[01])|7(?:17|2(?:[569]|[234]\\d?)|3(?:0\\d?|[13])|69|7[01]))\\d{4}","\\d{8,9}",,,"612012345"] @@ -3120,8 +3303,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"8701\\d{5}","\\d{9}",,,"870123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"886\\d{5}","\\d{8}",,,"88612345"] -,"NA",264,"00","0",,,"0",,,,[[,"(8\\d)(\\d{3})(\\d{4})","$1 $2 $3",["8[125]"] +,[,,"8(3\\d{2}|86)\\d{5}","\\d{8,9}",,,"88612345"] +,"NA",264,"00","0",,,"0",,,,[[,"(8\\d)(\\d{3})(\\d{4})","$1 $2 $3",["8[1235]"] ,"0$1","",0] ,[,"(6\\d)(\\d{2,3})(\\d{4})","$1 $2 $3",["6"] ,"0$1","",0] @@ -3134,6 +3317,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10111","\\d{5}",,,"10111"] +,[,,"NA","NA"] ] ,"NC":[,[,,"[2-47-9]\\d{5}","\\d{6}"] ,[,,"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}","\\d{6}",,,"201234"] @@ -3149,6 +3333,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[5-8]","\\d{2}",,,"15"] +,[,,"NA","NA"] ] ,"NE":[,[,,"[029]\\d{7}","\\d{8}"] ,[,,"2(?:0(?:20|3[1-7]|4[134]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}","\\d{8}",,,"20201234"] @@ -3167,6 +3352,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"NF":[,[,,"[13]\\d{5}","\\d{5,6}"] ,[,,"(?:1(?:06|17|28|39)|3[012]\\d)\\d{3}","\\d{5,6}",,,"106609"] @@ -3185,6 +3371,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|55|77)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"NG":[,[,,"[1-69]\\d{5,8}|[78]\\d{5,13}","\\d{5,14}"] ,[,,"[12]\\d{6,7}|9\\d{7}|(?:4[023568]|5[02368]|6[02-469]|7[569]|8[2-9])\\d{6}|(?:4[47]|5[14579]|6[1578]|7[0-357])\\d{5,6}|(?:78|41)\\d{5}","\\d{5,9}",,,"12345678"] @@ -3192,7 +3379,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"800\\d{7,11}","\\d{10,14}",,,"80017591759"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"700\\d{7,11}","\\d{10,14}",,,"7001234567"] +,[,,"NA","NA"] ,[,,"NA","NA"] ,"NG",234,"009","0",,,"0",,,,[[,"([129])(\\d{3})(\\d{3,4})","$1 $2 $3",["[129]"] ,"0$1","",0] @@ -3209,8 +3396,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"700\\d{7,11}","\\d{10,14}",,,"7001234567"] ,,[,,"199","\\d{3}",,,"199"] +,[,,"NA","NA"] ] ,"NI":[,[,,"[128]\\d{7}","\\d{8}"] ,[,,"2\\d{7}","\\d{8}",,,"21234567"] @@ -3226,28 +3414,34 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"118","\\d{3}",,,"118"] +,[,,"NA","NA"] ] -,"NL":[,[,,"[1-9]\\d{6,9}","\\d{7,10}"] +,"NL":[,[,,"1\\d{4,8}|[2-7]\\d{8}|[89]\\d{6,9}","\\d{5,10}"] ,[,,"(?:1[0135-8]|2[02-69]|3[0-68]|4[0135-9]|[57]\\d|8[478])\\d{7}","\\d{9}",,,"101234567"] ,[,,"6[1-58]\\d{7}","\\d{9}",,,"612345678"] ,[,,"800\\d{4,7}","\\d{7,10}",,,"8001234"] ,[,,"90[069]\\d{4,7}","\\d{7,10}",,,"9001234"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"85\\d{7}","\\d{9}"] +,[,,"85\\d{7}","\\d{9}",,,"851234567"] ,"NL",31,"00","0",,,"0",,,,[[,"([1-578]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1[035]|2[0346]|3[03568]|4[0356]|5[0358]|7|8[458]"] ,"0$1","",0] ,[,"([1-5]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"] ,"0$1","",0] -,[,"(6)(\\d{8})","$1 $2",["6"] +,[,"(6)(\\d{8})","$1 $2",["6[0-57-9]"] +,"0$1","",0] +,[,"(66)(\\d{7})","$1 $2",["66"] ,"0$1","",0] +,[,"(14)(\\d{3,4})","$1 $2",["14"] +,"$1","",0] ,[,"([89]0\\d)(\\d{4,7})","$1 $2",["80|9"] ,"0$1","",0] ] -,,[,,"NA","NA"] -,,,[,,"NA","NA"] -,[,,"NA","NA"] +,,[,,"66\\d{7}","\\d{9}",,,"662345678"] +,,,[,,"14\\d{3,4}","\\d{5,6}"] +,[,,"140(?:1(?:[035]|[16-8]\\d)|2(?:[0346]|[259]\\d)|3(?:[03568]|[124]\\d)|4(?:[0356]|[17-9]\\d)|5(?:[0358]|[124679]\\d)|7\\d|8[458])","\\d{5,6}",,,"14020"] ,,[,,"112|911","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"NO":[,[,,"0\\d{4}|[2-9]\\d{7}","\\d{5}(?:\\d{3})?"] ,[,,"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}","\\d{8}",,,"21234567"] @@ -3266,6 +3460,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}","\\d{5}(?:\\d{3})?",,,"01234"] ,1,[,,"11[023]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"NP":[,[,,"[1-8]\\d{7}|9(?:[1-69]\\d{6}|7[2-6]\\d{5,7}|8\\d{8})","\\d{6,10}"] ,[,,"(?:1[0124-6]|2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-79])\\d{6}","\\d{6,8}",,,"14567890"] @@ -3286,6 +3481,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[0-3]|12)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"NR":[,[,,"[458]\\d{6}","\\d{7}"] ,[,,"(?:444|888)\\d{4}","\\d{7}",,,"4441234"] @@ -3301,6 +3497,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[0-2]","\\d{3}",,,"110"] +,[,,"NA","NA"] ] ,"NU":[,[,,"[1-5]\\d{3}","\\d{4}"] ,[,,"[34]\\d{3}","\\d{4}",,,"4002"] @@ -3314,6 +3511,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"NZ":[,[,,"6[235-9]\\d{6}|[2-57-9]\\d{7,10}","\\d{7,11}"] ,[,,"(?:3[2-79]|[49][2-689]|6[235-9]|7[2-589])\\d{6}|24099\\d{3}","\\d{7,8}",,,"32345678"] @@ -3327,6 +3525,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"(21)(\\d{4})(\\d{3,4})","$1 $2 $3",["21"] ,"0$1","",0] +,[,"(22)(\\d{3})(\\d{4})","$1 $2 $3",["22"] +,"0$1","",0] ,[,"([2589]\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[0247-9]|5|[89]00"] ,"0$1","",0] ,[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[0169]|86"] @@ -3338,6 +3538,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"111","\\d{3}",,,"111"] +,[,,"NA","NA"] ] ,"OM":[,[,,"(?:2[3-6]|5|9[2-9])\\d{6}|800\\d{5,6}","\\d{7,9}"] ,[,,"2[3-6]\\d{6}","\\d{8}",,,"23123456"] @@ -3358,6 +3559,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9999","\\d{4}",,,"9999"] +,[,,"NA","NA"] ] ,"PA":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"] ,[,,"(?:1(?:0[02-579]|19|23|3[03]|4[479]|5[57]|65|7[016-8]|8[58]|9[1-49])|2(?:[0235679]\\d|1[0-7]|4[04-9]|8[028])|3(?:0[0-7]|1[14-7]|2[0-3]|3[03]|4[0457]|5[56]|6[068]|7[078]|80|9[0-79])|4(?:3[013-59]|4\\d|7[0-689])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:09|2[0-267]|[34]0|5[6-9]|7[0-24-7]|8[89]|99)|8(?:[34]\\d|5[0-5]|8[02])|9(?:0[78]|1[0178]|2[0378]|3[379]|40|5[0489]|6[06-9]|7[046-9]|8[36-8]|9[1-9]))\\d{4}","\\d{7}",,,"2001234"] @@ -3376,6 +3578,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"PE":[,[,,"[14-9]\\d{7,8}","\\d{6,9}"] ,[,,"(?:1\\d|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\d{6}","\\d{6,8}",,,"11234567"] @@ -3398,6 +3601,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:05|1[67])","\\d{3}",,,"105"] +,[,,"NA","NA"] ] ,"PF":[,[,,"[2-9]\\d{5}","\\d{6}"] ,[,,"(?:36\\d|4(?:[02-9]\\d|1[02-9])|[5689]\\d{2})\\d{3}","\\d{6}",,,"401234"] @@ -3413,6 +3617,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"(?:36|44)\\d{4}","\\d{6}",,,"441234"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}",,,"15"] +,[,,"NA","NA"] ] ,"PG":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"] ,[,,"(?:3\\d{2}|4[257]\\d|5[34]\\d|6(?:29|4[1-9])|85[02-46-9]|9[78]\\d)\\d{4}","\\d{7}",,,"3123456"] @@ -3431,6 +3636,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"000","\\d{3}",,,"000"] +,[,,"NA","NA"] ] ,"PH":[,[,,"[2-9]\\d{7,9}|1800\\d{7,9}","\\d{7,13}"] ,[,,"(?:2|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578]|8[2-8])\\d{7}","\\d{7,9}",,,"21234567"] @@ -3459,6 +3665,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[27]|911","\\d{3}",,,"117"] +,[,,"NA","NA"] ] ,"PK":[,[,,"1\\d{8}|[2-8]\\d{5,11}|9(?:[013-9]\\d{4,9}|2\\d(?:111\\d{6}|\\d{3,7}))","\\d{6,12}"] ,[,,"(?:21|42)[2-9]\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}|58[126]\\d{7}","\\d{6,10}",,,"2123456789"] @@ -3489,9 +3696,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:[1-8]|0[468])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}","\\d{11,12}",,,"21111825888"] ,,[,,"1(?:1(?:22?|5)|[56])","\\d{2,4}",,,"112"] +,[,,"NA","NA"] ] -,"PL":[,[,,"[1-9]\\d{8}","\\d{9}"] -,[,,"(?:1[2-8]|2[2-59]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])\\d{7}","\\d{9}",,,"123456789"] +,"PL":[,[,,"[1-58]\\d{6,8}|9\\d{8}|[67]\\d{5,8}","\\d{6,9}"] +,[,,"(?:1[2-8]|2[2-59]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-6]|8[1-7])\\d{5,7}|77\\d{4,7}|(?:89|9[145])\\d{7}","\\d{6,9}",,,"123456789"] ,[,,"(?:5[013]|6[069]|7[289]|88)\\d{7}","\\d{9}",,,"512345678"] ,[,,"800\\d{6}","\\d{9}",,,"800123456"] ,[,,"70\\d{7}","\\d{9}",,,"701234567"] @@ -3500,13 +3708,20 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"39\\d{7}","\\d{9}",,,"391234567"] ,"PL",48,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[124]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145]"] ,"","",0] -,[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["39|5[013]|6[069]|7[0289]|8[08]"] +,[,"(\\d{2})(\\d{4,6})","$1 $2",["[124]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-7]"] +,"","",0] +,[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["39|5[013]|6[0469]|7[0289]|8[08]"] +,"","",0] +,[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"] +,"","",0] +,[,"(\\d{3})(\\d{3})","$1 $2",["64"] ,"","",0] ] -,,[,,"NA","NA"] +,,[,,"642\\d{3,6}","\\d{6,9}",,,"642123456"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|99[789]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"PM":[,[,,"[45]\\d{5}","\\d{6}"] ,[,,"41\\d{4}","\\d{6}",,,"411234"] @@ -3522,6 +3737,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] ,"PR":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"(?:787|939)[2-9]\\d{6}","\\d{7}(?:\\d{3})?",,,"7872345678"] @@ -3535,6 +3751,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"787|939",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"PS":[,[,,"[24589]\\d{7,8}|1(?:[78]\\d{8}|[49]\\d{2,3})","\\d{4,10}"] ,[,,"(?:22[234789]|42[45]|82[01458]|92[369])\\d{5}","\\d{7,8}",,,"22234567"] @@ -3555,6 +3772,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"PT":[,[,,"[2-46-9]\\d{8}","\\d{9}"] ,[,,"2(?:[12]\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\d{6}","\\d{9}",,,"212345678"] @@ -3570,6 +3788,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"70(?:7\\d|8[147])\\d{5}","\\d{9}",,,"707123456"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"PW":[,[,,"[2-8]\\d{6}","\\d{7}"] ,[,,"2552255|(?:277|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76))\\d{4}","\\d{7}",,,"2771234"] @@ -3585,6 +3804,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"PY":[,[,,"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}","\\d{5,9}"] ,[,,"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}","\\d{5,9}",,,"212345678"] @@ -3609,6 +3829,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"[2-9]0\\d{4,7}","\\d{6,9}",,,"201234567"] ,,[,,"128|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"QA":[,[,,"[2-8]\\d{6,7}","\\d{7,8}"] ,[,,"44\\d{6}","\\d{7,8}",,,"44123456"] @@ -3627,6 +3848,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"RE":[,[,,"[268]\\d{8}","\\d{9}"] ,[,,"262\\d{6}","\\d{9}",,,"262161234"] @@ -3642,6 +3864,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,"262|6[49]|8",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|[578])","\\d{2,3}",,,"15"] +,[,,"NA","NA"] ] ,"RO":[,[,,"[237-9]\\d{8}","\\d{9}"] ,[,,"[23][13-6]\\d{7}","\\d{9}",,,"211234567"] @@ -3658,8 +3881,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"37\\d{7}","\\d{9}",,,"372123456"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"RS":[,[,,"[1-36-9]\\d{4,11}","\\d{5,12}"] ,[,,"[1-3]\\d{6,11}","\\d{5,12}",,,"101234567"] @@ -3686,6 +3910,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"7[06]\\d{4,10}","\\d{6,12}",,,"700123456"] ,,[,,"112|9[234]","\\d{2,3}",,,"112"] +,[,,"NA","NA"] ] ,"RU":[,[,,"[3489]\\d{9}","\\d{10}"] ,[,,"(?:3(?:0[12]|4[1-35-79]|5[1-3]|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-7]|7[1-37-9]))\\d{7}","\\d{10}",,,"3011234567"] @@ -3704,6 +3929,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0[123]|112","\\d{2,3}",,,"112"] +,[,,"NA","NA"] ] ,"RW":[,[,,"[027-9]\\d{7,8}","\\d{8,9}"] ,[,,"2[258]\\d{7}|06\\d{6}","\\d{8,9}",,,"250123456"] @@ -3724,9 +3950,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] -,"SA":[,[,,"[1-9]\\d{7,10}","\\d{7,11}"] -,[,,"(?:1[24-7]|2[24-8]|3[35-8]|4[34-68]|6[2-5]|7[235-7])\\d{6}","\\d{7,8}",,,"12345678"] +,"SA":[,[,,"[1-467]\\d{7}|5\\d{8}|(?:8|92)\\d{9}","\\d{7,11}"] +,[,,"(?:[12][24-8]|3[35-8]|4[34-68]|6[2-5]|7[235-7])\\d{6}","\\d{7,8}",,,"12345678"] ,[,,"(?:5[013-689]\\d|8111)\\d{6}","\\d{9,10}",,,"512345678"] ,[,,"800\\d{7}","\\d{10}",,,"8001234567"] ,[,,"9200\\d{7}","\\d{11}",,,"92001234567"] @@ -3748,6 +3975,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[7-9]","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"SB":[,[,,"[1-8]\\d{4,6}","\\d{5,7}"] ,[,,"(?:1[4-79]|[23]\\d|4[01]|5[03]|6[0-37])\\d{3}","\\d{5}",,,"40123"] @@ -3764,24 +3992,26 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] -,"SC":[,[,,"[2-9]\\d{5,6}","\\d{6,7}"] -,[,,"(?:2?(?:55[0-5]|78[013])|4?(?:2(?:0[589]|1[03-9]|[2-9]\\d)|[36]\\d{2})|44\\d{2})\\d{3}","\\d{6,7}",,,"4217123"] -,[,,"2?(?:5(?:[0-46-9]\\d|5[6-9])|7(?:[0-79]\\d|8[24-9]))\\d{3}","\\d{6,7}",,,"2510123"] +,"SC":[,[,,"[24689]\\d{5,6}","\\d{6,7}"] +,[,,"(?:2(?:55[0-5]|78[013])|4(?:2(?:0[589]|1[03-9]|[2-9]\\d)|[346]\\d{2}))\\d{3}","\\d{7}",,,"4217123"] +,[,,"2(?:5(?:[0-46-9]\\d|5[6-9])|7(?:[0-79]\\d|8[24-9]))\\d{3}","\\d{7}",,,"2510123"] ,[,,"8000\\d{2}","\\d{6}",,,"800000"] ,[,,"98\\d{4}","\\d{6}",,,"981234"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"64\\d{5}","\\d{7}",,,"6412345"] -,"SC",248,"0[0-2]",,,,,,"00",,[[,"(\\d{3})(\\d{3})","$1 $2",["[35789]|2[1-4689]|6[0-35-9]"] +,"SC",248,"0[0-2]",,,,,,"00",,[[,"(\\d{3})(\\d{3})","$1 $2",["[89]"] ,"","",0] -,[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["2[57]|4|64"] +,[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]"] ,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"SD":[,[,,"[19]\\d{8}","\\d{9}"] ,[,,"1(?:[25]\\d|8[3567])\\d{6}","\\d{9}",,,"121231234"] @@ -3797,6 +4027,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"SE":[,[,,"[1-9]\\d{6,9}","\\d{5,10}"] ,[,,"1(?:0[1-8]\\d{6}|[136]\\d{5,7}|(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)\\d{5,6})|2(?:[136]\\d{5,7}|(?:2[0-7]|4[0136-8]|5[0-38]|7[018]|8[01]|9[0-57])\\d{5,6})|3(?:[356]\\d{5,7}|(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])\\d{5,6})|4(?:[0246]\\d{5,7}|(?:1[01-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])\\d{5,6})|5(?:0[0-6]|1[0-5]|2[0-68]|3[0-4]|4\\d|5[0-5]|6[03-5]|7[013]|8[0-79]|9[01])\\d{5,6}|6(?:[03]\\d{5,7}|(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])\\d{5,6})|8\\d{6,8}|9(?:0\\d{5,7}|(?:1[0-68]|2\\d|3[02-59]|4[0-4]|5[0-4]|6[01]|7[0135-8]|8[01])\\d{5,6})","\\d{5,9}",,,"8123456"] @@ -3844,6 +4075,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|90000","\\d{3,5}",,,"112"] +,[,,"NA","NA"] ] ,"SG":[,[,,"[36]\\d{7}|[17-9]\\d{7,10}","\\d{8,11}"] ,[,,"6[1-8]\\d{6}","\\d{8}",,,"61234567"] @@ -3865,7 +4097,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"7000\\d{7}","\\d{11}",,,"70001234567"] -,,[,,"112|9(?:11|9[59])","\\d{3}",,,"999"] +,,[,,"99[59]","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"SH":[,[,,"[2-9]\\d{3}","\\d{4}"] ,[,,"(?:[2-468]\\d|7[01])\\d{2}","\\d{4}",,,"2158"] @@ -3879,6 +4112,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"SI":[,[,,"[1-7]\\d{6,7}|[89]\\d{4,7}","\\d{5,8}"] ,[,,"(?:1\\d|2[2-8]|3[4-8]|4[24-8]|[57][3-8])\\d{6}","\\d{7,8}",,,"11234567"] @@ -3901,6 +4135,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[23]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"SJ":[,[,,"0\\d{4}|[4789]\\d{7}","\\d{5}(?:\\d{3})?"] ,[,,"79\\d{6}","\\d{8}",,,"79123456"] @@ -3914,6 +4149,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}","\\d{5}(?:\\d{3})?",,,"01234"] ,1,[,,"11[023]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"SK":[,[,,"[2-689]\\d{8}","\\d{9}"] ,[,,"[2-5]\\d{8}","\\d{9}",,,"212345678"] @@ -3934,6 +4170,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|5[058])","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"SL":[,[,,"[2-578]\\d{7}","\\d{6,8}"] ,[,,"[235]2[2-4][2-9]\\d{4}","\\d{6,8}",,,"22221234"] @@ -3949,6 +4186,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"(?:01|99)9","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"SM":[,[,,"[05-7]\\d{7,9}","\\d{6,10}"] ,[,,"0549(?:8[0157-9]|9\\d)\\d{4}","\\d{6,10}",,,"0549886377"] @@ -3976,6 +4214,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"11[358]","\\d{3}",,,"113"] +,[,,"NA","NA"] ] ,"SN":[,[,,"[37]\\d{8}","\\d{9}"] ,[,,"3(?:010|3(?:8[1-9]|9[2-9]))\\d{5}","\\d{9}",,,"301012345"] @@ -3991,6 +4230,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"SO":[,[,,"[1-79]\\d{6,8}","\\d{7,9}"] ,[,,"(?:5[57-9]|[1-4]\\d)\\d{5}","\\d{7}",,,"5522010"] @@ -4015,10 +4255,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"SR":[,[,,"[2-8]\\d{5,6}","\\d{6,7}"] ,[,,"(?:2[1-3]|3[0-7]|4\\d|5[2-58]|68\\d)\\d{4}","\\d{6,7}",,,"211234"] -,[,,"(?:7[1245]|8[1-9])\\d{5}","\\d{7}",,,"7412345"] +,[,,"(?:7[1-5]|8[1-9])\\d{5}","\\d{7}",,,"7412345"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -4035,6 +4276,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"115","\\d{3}",,,"115"] +,[,,"NA","NA"] ] ,"ST":[,[,,"[29]\\d{6}","\\d{7}"] ,[,,"22\\d{5}","\\d{7}",,,"2221234"] @@ -4050,16 +4292,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] -,"SV":[,[,,"[27]\\d{7}|[89]\\d{6}(?:\\d{4})?","\\d{7,8}|\\d{11}"] +,"SV":[,[,,"[267]\\d{7}|[89]\\d{6}(?:\\d{4})?","\\d{7,8}|\\d{11}"] ,[,,"2[1-6]\\d{6}","\\d{8}",,,"21234567"] -,[,,"7\\d{7}","\\d{8}",,,"70123456"] +,[,,"[67]\\d{7}","\\d{8}",,,"70123456"] ,[,,"800\\d{4}(?:\\d{4})?","\\d{7}(?:\\d{4})?",,,"8001234"] ,[,,"900\\d{4}(?:\\d{4})?","\\d{7}(?:\\d{4})?",,,"9001234"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"SV",503,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[27]"] +,"SV",503,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[267]"] ,"","",0] ,[,"(\\d{3})(\\d{4})","$1 $2",["[89]"] ,"","",0] @@ -4070,10 +4313,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"SX":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"72154[2-8]\\d{4}","\\d{7}(?:\\d{3})?",,,"7215425678"] -,[,,"7215(?:1[02]|2\\d|5[0346]|8[01678])\\d{4}","\\d{10}",,,"7215205678"] +,[,,"7215(?:4[2-8]|8[239])\\d{4}","\\d{7}(?:\\d{3})?",,,"7215425678"] +,[,,"7215(?:1[02]|2\\d|5[03469]|8[01678])\\d{4}","\\d{10}",,,"7215205678"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002123456"] ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002123456"] ,[,,"NA","NA"] @@ -4083,6 +4327,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"721",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"919","\\d{3}",,,"919"] +,[,,"NA","NA"] ] ,"SY":[,[,,"[1-59]\\d{7,8}","\\d{6,9}"] ,[,,"(?:1(?:1\\d?|4\\d|[2356])|2[1-35]|3(?:[13]\\d|4)|4[13]|5[1-3])\\d{6}","\\d{6,9}",,,"112345678"] @@ -4101,6 +4346,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[023]","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"SZ":[,[,,"[027]\\d{7}","\\d{8}"] ,[,,"2(?:2(?:0[07]|[13]7|2[57])|3(?:0[34]|[1278]3|3[23]|[46][34])|(?:40[4-69]|67)|5(?:0[5-7]|1[6-9]|[23][78]|48|5[01]))\\d{4}","\\d{8}",,,"22171234"] @@ -4117,6 +4363,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"0800\\d{4}","\\d{8}",,,"08001234"] ,[,,"NA","NA"] ,1,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"TC":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"649(?:712|9(?:4\\d|50))\\d{4}","\\d{7}(?:\\d{3})?",,,"6497121234"] @@ -4130,6 +4377,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"649",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"TD":[,[,,"[2679]\\d{7}","\\d{8}"] ,[,,"22(?:[3789]0|5[0-5]|6[89])\\d{4}","\\d{8}",,,"22501234"] @@ -4145,6 +4393,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}",,,"17"] +,[,,"NA","NA"] ] ,"TG":[,[,,"[29]\\d{7}","\\d{8}"] ,[,,"2(?:2[2-7]|3[23]|44|55|66|77)\\d{5}","\\d{8}",,,"22212345"] @@ -4160,8 +4409,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:01|1[78]|7[17])","\\d{3}",,,"117"] +,[,,"NA","NA"] ] -,"TH":[,[,,"[2-9]\\d{7,8}|1\\d{9}","\\d{8,10}"] +,"TH":[,[,,"[2-9]\\d{7,8}|1\\d{3}(?:\\d{6})?","\\d{4}|\\d{8,10}"] ,[,,"(?:2[1-9]|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}","\\d{8}",,,"21234567"] ,[,,"[89]\\d{8}","\\d{9}",,,"812345678"] ,[,,"1800\\d{6}","\\d{10}",,,"1800123456"] @@ -4179,9 +4429,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"$1","",0] ] ,,[,,"NA","NA"] -,,,[,,"NA","NA"] -,[,,"NA","NA"] +,,,[,,"1\\d{3}","\\d{4}",,,"1100"] +,[,,"1\\d{3}","\\d{4}",,,"1100"] ,,[,,"1(?:669|9[19])","\\d{3,4}",,,"191"] +,[,,"NA","NA"] ] ,"TJ":[,[,,"[3-59]\\d{8}","\\d{3,9}"] ,[,,"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}","\\d{3,9}",,,"372123456"] @@ -4204,19 +4455,21 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[1-3]|12)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] -,"TK":[,[,,"[1-9]\\d{3}","\\d{4}",,,"3190"] -,[,,"[1-9]\\d{3}","\\d{4}",,,"3190"] -,[,,"[1-9]\\d{3}","\\d{4}",,,"3190"] +,"TK":[,[,,"[2-5]\\d{3}","\\d{4}"] +,[,,"[2-4]\\d{3}","\\d{4}",,,"3010"] +,[,,"5\\d{3}","\\d{4}",,,"5190"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"TK",690,"00",,,,,,,1,,,[,,"NA","NA"] +,"TK",690,"00",,,,,,,,,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"TL":[,[,,"[2-47-9]\\d{6}","\\d{7}"] ,[,,"(?:2[1-5]|3[1-9]|4[1-4])\\d{5}","\\d{7}",,,"2112345"] @@ -4232,21 +4485,28 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"TM":[,[,,"[1-6]\\d{7}","\\d{8}"] -,[,,"(?:12\\d|243|[3-5]22)\\d{5}","\\d{8}",,,"12345678"] -,[,,"6[6-8]\\d{6}","\\d{8}",,,"66123456"] +,[,,"(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}","\\d{8}",,,"12345678"] +,[,,"6[3-8]\\d{6}","\\d{8}",,,"66123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"TM",993,"810","8",,,"8",,"8~10",,[[,"([1-6]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"8 $1","",0] +,"TM",993,"810","8",,,"8",,"8~10",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"] +,"(8 $1)","",0] +,[,"(\\d{2})(\\d{6})","$1 $2",["6"] +,"8 $1","",0] +,[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["13|[2-5]"] +,"(8 $1)","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0[1-3]","\\d{2}",,,"03"] +,[,,"NA","NA"] ] ,"TN":[,[,,"[2457-9]\\d{7}","\\d{8}"] ,[,,"7\\d{7}","\\d{8}",,,"71234567"] @@ -4262,6 +4522,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[078]","\\d{3}",,,"197"] +,[,,"NA","NA"] ] ,"TO":[,[,,"[02-8]\\d{4,6}","\\d{5,7}"] ,[,,"(?:2\\d|3[1-8]|4[1-4]|[56]0|7[0149]|8[05])\\d{3}","\\d{5}",,,"20123"] @@ -4282,6 +4543,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"9(?:11|22|33|99)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"TR":[,[,,"[2-589]\\d{9}|444\\d{4}","\\d{7,10}"] ,[,,"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}","\\d{10}",,,"2123456789"] @@ -4302,6 +4564,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"444\\d{4}","\\d{7}",,,"4441444"] ,[,,"444\\d{4}|850\\d{7}","\\d{7,10}",,,"4441444"] ,,[,,"1(?:1[02]|55)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"TT":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"868(?:2(?:01|2[1-5])|6(?:07|1[4-6]|2[1-9]|[3-6]\\d|7[0-79]|9[0-8])|82[12])\\d{4}","\\d{7}(?:\\d{3})?",,,"8682211234"] @@ -4315,6 +4578,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"868",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[09]","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"TV":[,[,,"[29]\\d{4,5}","\\d{5,6}"] ,[,,"2[02-9]\\d{3}","\\d{5}",,,"20123"] @@ -4328,6 +4592,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"TW":[,[,,"[2-9]\\d{7,8}","\\d{8,9}"] ,[,,"[2-8]\\d{7,8}","\\d{8,9}",,,"21234567"] @@ -4346,6 +4611,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[029]","\\d{3}",,,"110"] +,[,,"NA","NA"] ] ,"TZ":[,[,,"\\d{9}","\\d{7,9}"] ,[,,"2[2-8]\\d{7}","\\d{7,9}",,,"222345678"] @@ -4366,6 +4632,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[12]|999","\\d{3}",,,"111"] +,[,,"NA","NA"] ] ,"UA":[,[,,"[3-689]\\d{8}","\\d{5,9}"] ,[,,"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}","\\d{5,9}",,,"311234567"] @@ -4386,18 +4653,19 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"UG":[,[,,"\\d{9}","\\d{5,9}"] -,[,,"20(?:[014]\\d{2}|2(?:40|[5-9]\\d)|3[23]|4\\d)\\d{4}|[34]\\d{8}","\\d{5,9}",,,"312345678"] -,[,,"7(?:0[0-7]|[15789]\\d)\\d{6}","\\d{9}",,,"712345678"] +,[,,"20(?:[014]\\d{2}|2(?:40|[5-9]\\d)|3[23]\\d|5[0-4]\\d)\\d{4}|[34]\\d{8}","\\d{5,9}",,,"312345678"] +,[,,"7(?:0[0-7]|[15789]\\d|20|[46][0-4])\\d{6}","\\d{9}",,,"712345678"] ,[,,"800[123]\\d{5}","\\d{9}",,,"800123456"] ,[,,"90[123]\\d{6}","\\d{9}",,,"901123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"UG",256,"00[057]","0",,,"0",,,,[[,"(\\d{3})(\\d{6})","$1 $2",["[7-9]|20(?:0|2[5-9])|4(?:6[45]|[7-9])"] +,"UG",256,"00[057]","0",,,"0",,,,[[,"(\\d{3})(\\d{6})","$1 $2",["[7-9]|20(?:[013-5]|2[5-9])|4(?:6[45]|[7-9])"] ,"0$1","",0] -,[,"(\\d{2})(\\d{7})","$1 $2",["204|3|4(?:[1-5]|6[0-36-9])"] +,[,"(\\d{2})(\\d{7})","$1 $2",["3|4(?:[1-5]|6[0-36-9])"] ,"0$1","",0] ,[,"(2024)(\\d{5})","$1 $2",["2024"] ,"0$1","",0] @@ -4406,10 +4674,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"US":[,[,,"[2-9]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-29]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[059]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?",,,"2012345678"] -,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-29]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[059]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?",,,"2012345678"] +,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[0459]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?",,,"2012345678"] +,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[0459]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?",,,"2012345678"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002345678"] ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002345678"] ,[,,"NA","NA"] @@ -4424,6 +4693,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"UY":[,[,,"[2489]\\d{6,7}","\\d{7,8}"] ,[,,"2\\d{7}|4[2-7]\\d{6}","\\d{7,8}",,,"21231234"] @@ -4444,9 +4714,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"128|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"UZ":[,[,,"[679]\\d{8}","\\d{7,9}"] -,[,,"(?:6(?:1(?:22|3[124]|4[1-4]|5[123578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d{2}|7(?:[23]\\d|7[69]|)|9(?:4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[12456]|9[135-8])|12\\d|2(?:22|3[1345789]|4[123579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-4579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}","\\d{7,9}",,,"662345678"] +,[,,"(?:6(?:1(?:22|3[124]|4[1-4]|5[123578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d{2}|7(?:[23]\\d|7[69]|)|9(?:4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[12456]|9[135-8])|1[12]\\d|2(?:22|3[1345789]|4[123579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-4579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}","\\d{7,9}",,,"662345678"] ,[,,"6(?:1(?:2(?:98|2[01])|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:11\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4])|7\\d{2})|5(?:19[01]|2(?:27|9[26])|30\\d|59\\d|7\\d{2})|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|3[79]\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79])|9[0-3]\\d)|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(2(?:1[1267]|5\\d|3[01]|7[0-4])|5[67]\\d|6(?:2[0-26]|8\\d)|7\\d{2}))\\d{4}|7(?:0\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|33\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078])|9[4-6]\\d)|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0127]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[05629]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07])))\\d{4}|9[0-57-9]\\d{7}","\\d{7,9}",,,"912345678"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -4459,6 +4730,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0(?:0[123]|[123]|50)","\\d{2,3}",,,"01"] +,[,,"NA","NA"] ] ,"VA":[,[,,"06\\d{8}","\\d{10}"] ,[,,"06698\\d{5}","\\d{10}",,,"0669812345"] @@ -4474,6 +4746,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"11[2358]","\\d{3}",,,"113"] +,[,,"NA","NA"] ] ,"VC":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"784(?:266|3(?:6[6-9]|7\\d|8[0-24-6])|4(?:38|5[0-36-8]|8\\d|9[01])|555|638|784)\\d{4}","\\d{7}(?:\\d{3})?",,,"7842661234"] @@ -4487,6 +4760,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"784",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"VE":[,[,,"[24589]\\d{9}","\\d{7,10}"] ,[,,"(?:2(?:12|3[457-9]|[58][1-9]|[467]\\d|9[1-6])|50[01])\\d{7}","\\d{7,10}",,,"2121234567"] @@ -4502,6 +4776,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"171","\\d{3}",,,"171"] +,[,,"NA","NA"] ] ,"VG":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"284(?:(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})","\\d{7}(?:\\d{3})?",,,"2842291234"] @@ -4515,6 +4790,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"284",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"VI":[,[,,"[3589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"340(?:2(?:01|2[067]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?",,,"3406421234"] @@ -4528,6 +4804,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"340",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"VN":[,[,,"8\\d{5,8}|[1-79]\\d{7,9}","\\d{7,10}"] ,[,,"(?:2(?:[025-79]|1[0189]|[348][01])|3(?:[0136-9]|[25][01])|[48]\\d|5(?:[01][01]|[2-9])|6(?:[0-46-8]|5[01])|7(?:[02-79]|[18][01]))\\d{7}|69\\d{5,6}|80\\d{5}","\\d{7,10}",,,"2101234567"] @@ -4558,6 +4835,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[345]","\\d{3}",,,"113"] +,[,,"NA","NA"] ] ,"VU":[,[,,"[2-57-9]\\d{4,6}","\\d{5,7}"] ,[,,"(?:2[2-9]\\d|3(?:[67]\\d|8[0-8])|48[4-9]|88\\d)\\d{2}","\\d{5}",,,"22123"] @@ -4574,6 +4852,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"30\\d{3}|900\\d{4}","\\d{5,7}",,,"30123"] ,,[,,"112","\\d{3}",,,"112"] +,[,,"NA","NA"] ] ,"WF":[,[,,"[5-7]\\d{5}","\\d{6}"] ,[,,"(?:50|68|72)\\d{4}","\\d{6}",,,"501234"] @@ -4589,6 +4868,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}",,,"15"] +,[,,"NA","NA"] ] ,"WS":[,[,,"[2-8]\\d{4,6}","\\d{5,7}"] ,[,,"(?:[2-5]\\d|6[1-9]|84\\d{2})\\d{3}","\\d{5,7}",,,"22123"] @@ -4607,6 +4887,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[4-6]","\\d{3}",,,"994"] +,[,,"NA","NA"] ] ,"YE":[,[,,"[1-7]\\d{6,8}","\\d{6,9}"] ,[,,"(?:1(?:7\\d|[2-68])|2[2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}","\\d{6,8}",,,"1234567"] @@ -4625,6 +4906,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[1459]","\\d{3}",,,"191"] +,[,,"NA","NA"] ] ,"YT":[,[,,"[268]\\d{8}","\\d{9}"] ,[,,"2696[0-4]\\d{4}","\\d{9}",,,"269601234"] @@ -4638,6 +4920,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"269|63",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|5)","\\d{2,3}",,,"15"] +,[,,"NA","NA"] ] ,"ZA":[,[,,"[1-5]\\d{8}|(?:7\\d{4,8}|8[1-5789]\\d{3,7})|8[06]\\d{7}","\\d{5,9}"] ,[,,"(?:1[0-8]|2[1-478]|3[1-69]|4\\d|5[1346-8])\\d{7}","\\d{8,9}",,,"101234567"] @@ -4660,6 +4943,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:01(?:11|77)|12)","\\d{3,5}",,,"10111"] +,[,,"NA","NA"] ] ,"ZM":[,[,,"[289]\\d{8}","\\d{9}"] ,[,,"21[1-8]\\d{6}","\\d{9}",,,"211234567"] @@ -4678,6 +4962,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"(?:112|99[139])","\\d{3}",,,"999"] +,[,,"NA","NA"] ] ,"ZW":[,[,,"2(?:[012457-9]\\d{3,8}|6\\d{3,6})|[13-79]\\d{4,8}|86\\d{8}","\\d{3,10}"] ,[,,"(?:1[3-9]|2(?:0[45]|[16]|2[28]|[49]8?|58[23]|7[246]|8[1346-9])|3(?:08?|17?|3[78]|[2456]|7[1569]|8[379])|5(?:[07-9]|1[78]|483|5(?:7?|8))|6(?:0|28|37?|[45][68][78]|98?)|848)\\d{3,6}|(?:2(?:27|5|7[135789]|8[25])|3[39]|5[1-46]|6[126-8])\\d{4,6}|2(?:0|70)\\d{5,6}|(?:4\\d|9[2-8])\\d{4,7}","\\d{3,10}",,,"1312345"] @@ -4710,5 +4995,87 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"(?:112|99[3459])","\\d{3}",,,"999"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"] +,[,,"NA","NA",,,"12345678"] +,[,,"NA","NA",,,"12345678"] +,[,,"\\d{8}","\\d{8}",,,"12345678"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",800,"",,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"] +,[,,"NA","NA",,,"12345678"] +,[,,"NA","NA",,,"12345678"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"\\d{8}","\\d{8}",,,"12345678"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",808,"",,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?",,,"510012345"] +,[,,"NA","NA",,,"510012345"] +,[,,"NA","NA",,,"510012345"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"51(?:00\\d{5}(?:\\d{3})?|10\\d{8})","\\d{9}(?:\\d{3})?",,,"510012345"] +,"001",883,"",,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,"","",0] +,[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{11}","\\d{11}",,,"12345678901"] +,[,,"NA","NA",,,"12345678901"] +,[,,"NA","NA",,,"12345678901"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",888,"",,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"\\d{11}","\\d{11}",,,"12345678901"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{9}","\\d{9}",,,"123456789"] +,[,,"NA","NA",,,"123456789"] +,[,,"NA","NA",,,"123456789"] +,[,,"NA","NA"] +,[,,"\\d{9}","\\d{9}",,,"123456789"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",979,"",,,,,,,1,[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] ] }; diff --git a/javascript/i18n/phonenumbers/metadatafortesting.js b/javascript/i18n/phonenumbers/metadatafortesting.js index 6844089..998012c 100644 --- a/javascript/i18n/phonenumbers/metadatafortesting.js +++ b/javascript/i18n/phonenumbers/metadatafortesting.js @@ -47,6 +47,7 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = { ,244:["AO"] ,262:["RE","YT"] ,376:["AD"] +,800:["001"] }; /** @@ -66,6 +67,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"AO":[,[,,"[29]\\d{8}","\\d{9}"] ,[,,"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}","\\d{9}",,,"222123456"] @@ -81,6 +83,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"AR":[,[,,"[1-3689]\\d{9,10}","\\d{6,11}"] ,[,,"[1-3]\\d{9}","\\d{6,10}"] @@ -116,6 +119,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"AU":[,[,,"[1-578]\\d{4,14}","\\d{5,15}"] ,[,,"[2378]\\d{8}","\\d{9}"] @@ -134,6 +138,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"BR":[,[] ,[] @@ -147,6 +152,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[023]|911","\\d{3}",,,"190"] +,[,,"NA","NA"] ] ,"BS":[,[,,"(242|8(00|66|77|88)|900)\\d{7}","\\d{7,10}"] ,[,,"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\\d{4}","\\d{7,10}"] @@ -160,6 +166,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"DE":[,[,,"\\d{4,14}","\\d{2,14}"] ,[,,"(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}","\\d{2,14}",,,"30123456"] @@ -186,6 +193,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"GB":[,[,,"\\d{10}","\\d{6,10}"] ,[,,"[1-6]\\d{9}","\\d{6,10}"] @@ -208,6 +216,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"IT":[,[,,"[0389]\\d{5,10}","\\d{6,11}"] ,[,,"0\\d{9,10}","\\d{10,11}"] @@ -230,11 +239,12 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"NA","NA"] -] -,"JP":[,[] -,[] -,[] ,[,,"NA","NA"] +] +,"JP":[,[,,"07\\d{5}|[1-357-9]\\d{3,10}","\\d{4,11}"] +,[,,"07\\d{5}|[1-357-9]\\d{3,10}","\\d{4,11}"] +,[,,"07\\d{5}|[1-357-9]\\d{3,10}","\\d{4,11}"] +,[,,"0777[01]\\d{2}","\\d{7}",,,"0777012"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -243,19 +253,22 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"(\\d{2})(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[57-9]0"] ,"0$1","",0] -,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["222|333","(?:222|333)1","(?:222|333)11"] +,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["111|222|333","(?:111|222|333)1","(?:111|222|333)11"] ,"0$1","",0] ,[,"(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["222|333","2221|3332","22212|3332","222120|3332"] ,"0$1","",0] ,[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[23]"] ,"0$1","",0] -,[,"(\\d{4})","*$1",["[23]"] +,[,"(\\d{3})(\\d{4})","$1-$2",["077"] ,"0$1","",0] +,[,"(\\d{4})","*$1",["[23]"] +,"$1","",0] ] ,,[,,"NA","NA"] -,,,[,,"NA","NA"] +,,,[,,"[23]\\d{3}","\\d{4}"] +,[,,"NA","NA"] +,1,[,,"NA","NA"] ,[,,"NA","NA"] -,,[,,"NA","NA"] ] ,"KR":[,[,,"[1-7]\\d{3,9}|8\\d{8}","\\d{4,10}"] ,[,,"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})","\\d{4,10}",,,"22123456"] @@ -294,6 +307,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"MX":[,[,,"[1-9]\\d{9,10}","\\d{7,11}"] ,[,,"[2-9]\\d{9}","\\d{7,10}"] @@ -329,6 +343,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"NZ":[,[,,"[289]\\d{7,9}|[3-7]\\d{7}","\\d{7,10}"] ,[,,"24099\\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\\d{6}","\\d{7,8}"] @@ -349,6 +364,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"PL":[,[,,"[1-9]\\d{8}","\\d{9}"] ,[,,"[1-9]\\d{8}","\\d{9}"] @@ -364,6 +380,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"RE":[,[,,"[268]\\d{8}","\\d{9}"] ,[,,"262\\d{6}","\\d{9}",,,"262161234"] @@ -379,6 +396,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"262|6(?:9[23]|47)|8",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"SG":[,[,,"[13689]\\d{7,10}","\\d{8}|\\d{10,11}"] ,[,,"[36]\\d{7}","\\d{8}"] @@ -399,6 +417,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"US":[,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890"] ,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890"] @@ -417,6 +436,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"800\\d{7}","\\d{10}",,,"1234567890"] ,[,,"NA","NA"] ,,[,,"119|911","\\d{3}",,,"911"] +,[,,"NA","NA"] ] ,"YT":[,[,,"[268]\\d{8}","\\d{9}"] ,[,,"2696[0-4]\\d{4}","\\d{9}",,,"269601234"] @@ -430,5 +450,22 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"269|639",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"] +,[,,"NA","NA",,,"12345678"] +,[,,"NA","NA",,,"12345678"] +,[,,"\\d{8}","\\d{8}",,,"12345678"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",800,"",,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] ] }; diff --git a/javascript/i18n/phonenumbers/metadatalite.js b/javascript/i18n/phonenumbers/metadatalite.js index 0c0b1b8..d482399 100644 --- a/javascript/i18n/phonenumbers/metadatalite.js +++ b/javascript/i18n/phonenumbers/metadatalite.js @@ -206,13 +206,17 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = { ,690:["TK"] ,691:["FM"] ,692:["MH"] +,800:["001"] +,808:["001"] ,850:["KP"] ,852:["HK"] ,853:["MO"] ,855:["KH"] ,856:["LA"] ,880:["BD"] +,883:["001"] ,886:["TW"] +,888:["001"] ,960:["MV"] ,961:["LB"] ,962:["JO"] @@ -230,6 +234,7 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = { ,975:["BT"] ,976:["MN"] ,977:["NP"] +,979:["001"] ,992:["TJ"] ,993:["TM"] ,994:["AZ"] @@ -255,6 +260,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"AD":[,[,,"(?:[346-9]|180)\\d{5}","\\d{6,8}"] ,[,,"[78]\\d{5}","\\d{6}"] @@ -273,6 +279,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[0268]","\\d{3}"] +,[,,"NA","NA"] ] ,"AE":[,[,,"[2-79]\\d{7,8}|800\\d{2,9}","\\d{5,12}"] ,[,,"(?:[2-4679][2-8]\\d|600[25])\\d{5}","\\d{7,9}"] @@ -295,6 +302,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|99[789]","\\d{3}"] +,[,,"NA","NA"] ] ,"AF":[,[,,"[2-7]\\d{8}","\\d{7,9}"] ,[,,"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}","\\d{7,9}"] @@ -310,6 +318,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:02|19)","\\d{3}"] +,[,,"NA","NA"] ] ,"AG":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}","\\d{7}(?:\\d{3})?"] @@ -323,6 +332,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"268",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"AI":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"2644(?:6[12]|9[78])\\d{4}","\\d{7}(?:\\d{3})?"] @@ -336,6 +346,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"264",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"AL":[,[,,"[2-57]\\d{7}|6\\d{8}|8\\d{5,7}|9\\d{5}","\\d{5,9}"] ,[,,"(?:2(?:[168][1-9]|[247]\\d|9[1-7])|3(?:1[1-3]|[2-6]\\d|[79][1-8]|8[1-9])|4\\d{2}|5(?:1[1-4]|[2-578]\\d|6[1-5]|9[1-7])|8(?:[19][1-5]|[2-6]\\d|[78][1-7]))\\d{5}","\\d{5,8}"] @@ -358,6 +369,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"12[789]","\\d{3}"] +,[,,"NA","NA"] ] ,"AM":[,[,,"[1-35-9]\\d{7}","\\d{5,8}"] ,[,,"(?:10\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}","\\d{5,8}"] @@ -380,6 +392,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[123]","\\d{3}"] +,[,,"NA","NA"] ] ,"AN":[,[,,"[13-79]\\d{6,7}","\\d{7,8}"] ,[,,"(?:318|5(?:25|4\\d|8[239])|7(?:1[578]|50)|9(?:[48]\\d{2}|50\\d|7(?:2[0-2]|[34]\\d|6[35-7]|77)))\\d{4}|416[0239]\\d{3}","\\d{7,8}"] @@ -398,6 +411,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}"] +,[,,"NA","NA"] ] ,"AO":[,[,,"[29]\\d{8}","\\d{9}"] ,[,,"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}","\\d{9}"] @@ -413,26 +427,31 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[235]","\\d{3}"] +,[,,"NA","NA"] ] ,"AR":[,[,,"[1-368]\\d{9}|9\\d{10}","\\d{6,11}"] -,[,,"11\\d{8}|(?:2(?:2(?:[0139]\\d|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6])|3(?:1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|[067]\\d)|47[3-8]|6(?:[01345]\\d|2[2-7])|9(?:[0124789]\\d|3[1-6]|5[234]|6[2-6]))|3(?:3(?:2[79]|8[2578])|4(?:[78]\\d|0[0124-9]|[1-356]\\d|4[24-7]|9[123678])|5(?:[138]\\d|2[1245]|4[1-9]|6[2-4]|7[1-6])|7(?:[12468]\\d|3[1245]|5[124-8]|7[2-57])|8(?:[123578]\\d|4[13-6]|6[1-357-9]|9[124]))|670\\d)\\d{6}","\\d{6,10}"] -,[,,"675\\d{7}|9(?:11[2-9]\\d{7}|(?:2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578]))[2-9]\\d{6}|\\d{4}[2-9]\\d{5})","\\d{6,11}"] +,[,,"11\\d{8}|(?:2(?:2(?:[0139]\\d|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6])|3(?:1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|[067]\\d)|47[3-8]|6(?:[013-6]\\d|2[2-7])|80\\d|9(?:[0124789]\\d|3[1-6]|5[234]|6[2-46]))|3(?:3(?:2[79]|8[2578])|4(?:[78]\\d|0[0124-9]|[1-356]\\d|4[24-7]|9[123678])|5(?:[138]\\d|2[1245]|4[1-9]|6[2-4]|7[1-6])|6[24]\\d|7(?:[124689]\\d|3[1245]|5[14-8]|7[2-57])|8(?:[123578]\\d|4[13-6]|6[1-357-9]|9[124]))|670\\d)\\d{6}","\\d{6,10}"] +,[,,"675\\d{7}|9(?:11[2-9]\\d{7}|(?:2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578]))[2-9]\\d{6}|\\d{4}[2-9]\\d{5})","\\d{6,11}"] ,[,,"800\\d{7}","\\d{10}"] ,[,,"60[04579]\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"AR",54,"00","0",,,"0(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1-367])|3(?:[06]2|1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|7)|47[3-578]|6(?:1|2[2-7]|4[6-8]?|5[125-8])|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[0-24-68]|5[2-4]|6[2-6]|72?|8[23]?))|3(?:3(?:2[79]|8[2578])|4(?:0[124-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6\\d|7[126]|8[237-9]|9[1-36-8])|5(?:1|2[1245]|3[2-4]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|7(?:1[15-8]|2[125]|3[1245]|4[13]|5[124-8]|7[2-57]|8[1-36])|8(?:1|2[125-7]|3[23578]|4[13-6]|5[4-8]?|6[1-357-9]|7[5-8]?|8[4-7]?|9[124])))15)?","9$1",,,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"] +,"AR",54,"00","0",,,"0(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1-367])|3(?:[06]2|1[467]|2[02-6]|3[13-8]|[49][2-6]|5[2-8]|7)|47[3-578]|6(?:[0136]|2[2-7]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[024-68]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|8[2578])|4(?:0[124-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6\\d|7[126]|8[237-9]|9[1-36-8])|5(?:1|2[1245]|3[2-47]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:1[15-8]|2[125]|3[1245]|4[13]|5[14-8]|[69]|7[2-57]|8[1-36])|8(?:1|2[125-7]|3[23578]|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1",,,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"] ,"0$1","",0] ,[,"(9)(11)(\\d{4})(\\d{4})","$2 15-$3-$4",["911"] ,"0$1","",0] -,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9(?:2[2369]|3[458])","9(?:2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578]))"] +,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9(?:2[23689]|3[4-8])","9(?:2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578]))","9(?:2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79])))"] +,"0$1","",0] +,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"] ,"0$1","",0] -,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[24-9]|3[0-69]|47|6[25]|9[02-68])|3(?:3[28]|4[046-9]|5[2467]|7[1-578]|8[23469]))"] +,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9[23]"] ,"0$1","",0] ,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"] ,"0$1","",0] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578])","2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79]))"] +,"0$1","",0] +,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))"] ,"0$1","",0] ,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"] ,"0$1","",0] @@ -441,13 +460,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,[,"(9)(11)(\\d{4})(\\d{4})","$1 $2 $3-$4",["911"] ] -,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9(?:2[2369]|3[458])","9(?:2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578]))"] +,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9(?:2[23689]|3[4-8])","9(?:2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578]))","9(?:2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79])))"] ] -,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[24-9]|3[0-69]|47|6[25]|9[02-68])|3(?:3[28]|4[046-9]|5[2467]|7[1-578]|8[23469]))"] +,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"] +] +,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9[23]"] ] ,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"] ] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[14]|9[179])|3(?:4[1235]|5[138]|8[1578])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|37|6[01346]|80|9[147-9])|3(?:4[1235]|5[138]|6[24]|7[69]|8[1578])","2(?:2[013]|37|6[01346]|80|9(?:[17-9]|4[1379]))|3(?:4[1235]|5(?:[18]|3[0-35689])|6[24]|7[69]|8(?:[15]|7[0-24-9]|8[0-79]))"] +] +,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))"] ] ,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"] ] @@ -456,6 +479,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"810\\d{7}","\\d{10}"] ,[,,"810\\d{7}","\\d{10}"] ,,[,,"1(?:0[017]|28)","\\d{3}"] +,[,,"NA","NA"] ] ,"AS":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"6846(?:22|33|44|55|77|88|9[19])\\d{4}","\\d{7}(?:\\d{3})?"] @@ -469,6 +493,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"684",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"AT":[,[,,"[1-9]\\d{3,12}","\\d{3,13}"] ,[,,"1\\d{3,12}|(?:2(?:1[467]|2[134-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-8]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|63|7[1368]|8[2457])|5(?:12|2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[1-35-8]|5[468]|62)|7(?:2[1-8]|3[25]|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{3,10}","\\d{3,13}"] @@ -489,10 +514,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"5(?:(?:0[1-9]|17)\\d{2,10}|[79]\\d{3,11})|720\\d{6,10}","\\d{5,13}"] ,,[,,"1(?:[12]2|33|44)","\\d{3}"] +,[,,"NA","NA"] ] ,"AU":[,[,,"[1-578]\\d{5,9}","\\d{6,10}"] ,[,,"[237]\\d{8}|8(?:[68]\\d{3}|7[0-6]\\d{2}|9(?:[02-9]\\d{2}|1(?:[0-57-9]\\d|6[0135-9])))\\d{4}","\\d{8,9}"] -,[,,"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-37-9]|6[6-9]|7[07-9]|8[7-9])\\d{6}","\\d{9}"] +,[,,"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[46-9]|5[0-37-9]|6[6-9]|7[07-9]|8[7-9]|9[89])\\d{6}","\\d{9}"] ,[,,"180(?:0\\d{3}|2)\\d{3}","\\d{7,10}"] ,[,,"19(?:0[0126]\\d{6}|[13-5]\\d{3}|[679]\\d{5})","\\d{6,10}"] ,[,,"13(?:00\\d{2})?\\d{4}","\\d{6,10}"] @@ -519,6 +545,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"1(?:3(?:\\d{4}|00\\d{6})|80(?:0\\d{6}|2\\d{3}))","\\d{6,10}"] ,[,,"NA","NA"] ,,[,,"000|112","\\d{3}"] +,[,,"NA","NA"] ] ,"AW":[,[,,"[25-9]\\d{6}","\\d{7}"] ,[,,"5(?:2\\d|8[1-9])\\d{4}","\\d{7}"] @@ -534,6 +561,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"100|911","\\d{3}"] +,[,,"NA","NA"] ] ,"AX":[,[,,"[135]\\d{5,9}|[27]\\d{4,9}|4\\d{5,10}|6\\d{7,8}|8\\d{6,9}","\\d{5,12}"] ,[,,"18[1-8]\\d{3,9}","\\d{6,12}"] @@ -547,6 +575,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"10[1-9]\\d{3,7}|2(?:0(?:[16-8]\\d{3,7}|2[14-9]\\d{1,6}|[3-5]\\d{2,7}|9[0-7]\\d{1,6})|9\\d{4,8})|30[1-9]\\d{3,7}|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})","\\d{5,10}"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"AZ":[,[,,"[1-9]\\d{7,8}","\\d{5,9}"] ,[,,"(?:1(?:(?:[28]\\d|9)\\d|02|1[0-589]|3[358]|4[013-79]|5[0-479]|6[02346-9]|7[0-24-8])|2(?:02\\d|1(?:2[0-8]|42|6)|2(?:2[0-79]|3[0-35]|42|[1-35-9]|)|3(?:3[0-58]|[0-24])|4(?:2[0124579]|[1468])|5(?:2[0124579]|5)|6(?:2\\d|3[0128]|[56])|79)|365?\\d|44\\d{2})\\d{5}","\\d{5,9}"] @@ -573,6 +602,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}"] +,[,,"NA","NA"] ] ,"BA":[,[,,"[3-689]\\d{7}","\\d{6,8}"] ,[,,"(?:[35]\\d|49)\\d{6}","\\d{6,8}"] @@ -588,6 +618,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"81\\d{6}","\\d{8}"] ,,[,,"12[234]","\\d{3}"] +,[,,"NA","NA"] ] ,"BB":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"246[2-9]\\d{6}","\\d{7}(?:\\d{3})?"] @@ -601,9 +632,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"246",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"[235]11","\\d{3}"] +,[,,"NA","NA"] ] ,"BD":[,[,,"[2-79]\\d{5,9}|1\\d{9}|8[0-7]\\d{4,8}","\\d{6,10}"] -,[,,"2(?:7\\d1|8(?:[026]1|[1379][1-5]|8[1-8])|9(?:0[0-2]|1[1-4]|3[3-5]|5[56]|6[67]|71|8[078]))\\d{4}|3(?:[6-8]1|(?:0[23]|[25][12]|82|416)\\d|(?:31|12?[5-7])\\d{2})\\d{3}|4(?:(?:02|[49]6|[68]1)|(?:0[13]|21\\d?|[23]2|[457][12]|6[28])\\d|(?:23|[39]1)\\d{2}|1\\d{3})\\d{3}|5(?:(?:[457-9]1|62)|(?:1\\d?|2[12]|3[1-3]|52)\\d|61{2})|6(?:[45]1|(?:11|2[15]|[39]1)\\d|(?:[06-8]1|62)\\d{2})|7(?:(?:32|91)|(?:02|31|[67][12])\\d|[458]1\\d{2}|21\\d{3})\\d{3}|8(?:(?:4[12]|[5-7]2|1\\d?)|(?:0|3[12]|[5-7]1|217)\\d)\\d{4}|9(?:[35]1|(?:[024]2|81)\\d|(?:1|[24]1)\\d{2})\\d{3}","\\d{6,9}"] +,[,,"2(?:7(?:1[0-267]|2[0-289]|3[0-29]|[46][01]|5[1-3]|7[017]|91)|8(?:0[125]|[139][1-6]|2[0157-9]|6[1-35]|7[1-5]|8[1-8])|9(?:0[0-2]|1[1-4]|2[568]|3[3-6]|5[5-7]|6[0167]|7[15]|8[016-8]))\\d{4}|3(?:[6-8]1|(?:0[23]|[25][12]|82|416)\\d|(?:31|12?[5-7])\\d{2})\\d{3}|4(?:(?:02|[49]6|[68]1)|(?:0[13]|21\\d?|[23]2|[457][12]|6[28])\\d|(?:23|[39]1)\\d{2}|1\\d{3})\\d{3}|5(?:(?:[457-9]1|62)|(?:1\\d?|2[12]|3[1-3]|52)\\d|61{2})|6(?:[45]1|(?:11|2[15]|[39]1)\\d|(?:[06-8]1|62)\\d{2})|7(?:(?:32|91)|(?:02|31|[67][12])\\d|[458]1\\d{2}|21\\d{3})\\d{3}|8(?:(?:4[12]|[5-7]2|1\\d?)|(?:0|3[12]|[5-7]1|217)\\d)\\d{4}|9(?:[35]1|(?:[024]2|81)\\d|(?:1|[24]1)\\d{2})\\d{3}","\\d{6,9}"] ,[,,"(?:1[13-9]\\d|(?:3[78]|44)[02-9]|6(?:44|6[02-9]))\\d{7}","\\d{10}"] ,[,,"80[03]\\d{7}","\\d{10}"] ,[,,"NA","NA"] @@ -622,7 +654,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] -,,[,,"999","\\d{3}"] +,,[,,"10[0-2]|999","\\d{3}"] +,[,,"NA","NA"] ] ,"BE":[,[,,"[1-9]\\d{7,8}","\\d{8,9}"] ,[,,"(?:1[0-69]|[23][2-8]|[49][23]|5\\d|6[013-57-9]|7[18])\\d{6}|8(?:0[1-9]|[1-69]\\d)\\d{5}","\\d{8}"] @@ -645,6 +678,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[01]|12)","\\d{3}"] +,[,,"NA","NA"] ] ,"BF":[,[,,"[2457]\\d{7}","\\d{8}"] ,[,,"(?:20(?:49|5[23]|9[016-9])|40(?:4[569]|55|7[0179])|50[34]\\d)\\d{4}","\\d{8}"] @@ -660,6 +694,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}"] +,[,,"NA","NA"] ] ,"BG":[,[,,"[23567]\\d{5,7}|[489]\\d{6,8}","\\d{5,9}"] ,[,,"2(?:[0-8]\\d{5,6}|9\\d{4,6})|(?:[36]\\d|5[1-9]|8[1-6]|9[1-7])\\d{5,6}|(?:4(?:[124-7]\\d|3[1-6])|7(?:0[1-9]|[1-9]\\d))\\d{4,5}","\\d{5,8}"] @@ -688,10 +723,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|50|6[06])","\\d{3}"] +,[,,"NA","NA"] ] ,"BH":[,[,,"[136-9]\\d{7}","\\d{8}"] ,[,,"(?:1(?:3[3-6]|6[0156]|7\\d)\\d|6(?:1[16]\\d|6(?:0\\d|3[12]|44)|9(?:69|9[6-9]))|77\\d{2})\\d{4}","\\d{8}"] -,[,,"(?:3(?:[23469]\\d|77|8[348])\\d|6(?:1[16]\\d|6(?:[06]\\d3[03-9]|44|)|9(?:69|9[6-9]))|77\\d{2})\\d{4}","\\d{8}"] +,[,,"(?:3(?:[23469]\\d|77|8[348])\\d|6(?:1[16]\\d|6(?:[06]\\d|3[03-9]|44)|9(?:69|9[6-9]))|77\\d{2})\\d{4}","\\d{8}"] ,[,,"80\\d{6}","\\d{8}"] ,[,,"(?:87|9[014578])\\d{6}","\\d{8}"] ,[,,"84\\d{6}","\\d{8}"] @@ -703,6 +739,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"BI":[,[,,"[27]\\d{7}","\\d{8}"] ,[,,"22(?:2[0-7]|[3-5]0)\\d{4}","\\d{8}"] @@ -718,6 +755,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[78]","\\d{3}"] +,[,,"NA","NA"] ] ,"BJ":[,[,,"[2689]\\d{7}|7\\d{3}","\\d{4,8}"] ,[,,"2(?:02|1[037]|2[45]|3[68])\\d{5}","\\d{8}"] @@ -733,6 +771,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[78]","\\d{3}"] +,[,,"NA","NA"] ] ,"BL":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"590(?:2[7-9]|5[12]|87)\\d{4}","\\d{9}"] @@ -746,6 +785,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"18","\\d{2}"] +,[,,"NA","NA"] ] ,"BM":[,[,,"[4589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"441(?:2(?:02|23|61|[3479]\\d)|[46]\\d{2}|5(?:4\\d|60|89)|824)\\d{4}","\\d{7}(?:\\d{3})?"] @@ -759,6 +799,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"441",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"BN":[,[,,"[2-578]\\d{6}","\\d{7}"] ,[,,"[2-5]\\d{6}","\\d{7}"] @@ -774,6 +815,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[135]","\\d{3}"] +,[,,"NA","NA"] ] ,"BO":[,[,,"[23467]\\d{7}","\\d{7,8}"] ,[,,"(?:2(?:2\\d{2}|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d{2}|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:2\\d|3[234]|4[248]|5[24]|6[2-6]|7\\d))|4(?:4\\d{2}|6(?:11|[24689]\\d|72)))\\d{4}","\\d{7,8}"] @@ -792,6 +834,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[089]","\\d{3}"] +,[,,"NA","NA"] ] ,"BR":[,[,,"[1-9]\\d{7,9}","\\d{8,10}"] ,[,,"1[1-9][2-5]\\d{7}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}","\\d{8,10}"] @@ -812,6 +855,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"(?:400\\d|3003)\\d{4}","\\d{8}"] ,[,,"NA","NA"] ,,[,,"1(?:12|28|9[023])|911","\\d{3}"] +,[,,"NA","NA"] ] ,"BS":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3467]|8[0-4]|9[2-467])|461|502|6(?:12|7[67]|8[78]|9[89])|702)\\d{4}","\\d{7}(?:\\d{3})?"] @@ -825,6 +869,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"242",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"91[19]","\\d{3}"] +,[,,"NA","NA"] ] ,"BT":[,[,,"[1-8]\\d{6,7}","\\d{6,8}"] ,[,,"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}","\\d{6,7}"] @@ -843,6 +888,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[023]","\\d{3}"] +,[,,"NA","NA"] ] ,"BW":[,[,,"[2-79]\\d{6,7}","\\d{7,8}"] ,[,,"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0235-9]|55|6\\d|7[01]|9[0-57])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}","\\d{7}"] @@ -863,6 +909,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[789]","\\d{3}"] +,[,,"NA","NA"] ] ,"BY":[,[,,"[12-4]\\d{8}|[89]\\d{9,10}","\\d{7,11}"] ,[,,"(?:1(?:5(?:1[1-5]|2\\d|6[1-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d{2})|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:2\\d|3[02-79]|4[024-7]|5[0-7])))\\d{5}","\\d{7,9}"] @@ -883,6 +930,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"8(?:[01]|20)\\d{8}|902\\d{7}","\\d{10,11}"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}"] +,[,,"NA","NA"] ] ,"BZ":[,[,,"[2-8]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"] ,[,,"[234578][02]\\d{5}","\\d{7}"] @@ -901,6 +949,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"9(?:0|11)","\\d{2,3}"] +,[,,"NA","NA"] ] ,"CA":[,[,,"[2-9]\\d{9}|3\\d{6}","\\d{7}(?:\\d{3})?"] ,[,,"(?:2(?:04|26|[48]9|50)|3(?:06|43)|4(?:03|1[68]|38|5[06])|5(?:0[06]|1[49]|79|8[17])|6(?:0[04]|13|47)|7(?:0[059]|80|78)|8(?:[06]7|19|)|90[25])[2-9]\\d{6}|310\\d{4}","\\d{7}(?:\\d{3})?"] @@ -914,6 +963,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}"] +,[,,"NA","NA"] ] ,"CC":[,[,,"[1458]\\d{5,9}","\\d{6,10}"] ,[,,"89162\\d{4}","\\d{8,9}"] @@ -927,6 +977,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"000|112","\\d{3}"] +,[,,"NA","NA"] ] ,"CD":[,[,,"[89]\\d{8}|[1-6]\\d{6}","\\d{7,9}"] ,[,,"[1-6]\\d{6}","\\d{7}"] @@ -945,6 +996,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"CF":[,[,,"[278]\\d{7}","\\d{8}"] ,[,,"2[12]\\d{6}","\\d{8}"] @@ -960,6 +1012,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"CG":[,[,,"[028]\\d{8}","\\d{9}"] ,[,,"222[1-589]\\d{5}","\\d{9}"] @@ -978,8 +1031,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"NA","NA"] +,[,,"NA","NA"] ] -,"CH":[,[,,"[2-9]\\d{8}","\\d{9}"] +,"CH":[,[,,"[2-9]\\d{8}|860\\d{9}","\\d{9}(?:\\d{3})?"] ,[,,"(?:2[12467]|3[1-4]|4[134]|5[12568]|6[12]|[7-9]1)\\d{7}","\\d{9}"] ,[,,"7[46-9]\\d{7}","\\d{9}"] ,[,,"800\\d{6}","\\d{9}"] @@ -991,15 +1045,18 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"] ,"0$1","",0] +,[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["860"] +,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[278]|44)","\\d{3}"] +,[,,"860\\d{9}","\\d{12}"] ] ,"CI":[,[,,"[02-6]\\d{7}","\\d{8}"] ,[,,"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}","\\d{8}"] -,[,,"(?:0[1-9]|4[04-9]|5[07]|6[0567])\\d{6}","\\d{8}"] +,[,,"(?:0[1-9]|4[04-9]|5[057-9]|6[05679])\\d{6}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -1011,6 +1068,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"1(?:1[01]|[78]0)","\\d{3}"] +,[,,"NA","NA"] ] ,"CK":[,[,,"[2-57]\\d{4}","\\d{5}"] ,[,,"(?:2\\d|3[13-7]|4[1-5])\\d{3}","\\d{5}"] @@ -1026,6 +1084,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[689]","\\d{3}"] +,[,,"NA","NA"] ] ,"CL":[,[,,"(?:[2-9]|600|123)\\d{7,8}","\\d{6,11}"] ,[,,"(?:2|32|41)\\d{7}|(?:3[3-5]|4[235]|5[1-3578]|6[13-57]|7[1-35])\\d{6,7}","\\d{6,9}"] @@ -1054,6 +1113,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"600\\d{7,8}","\\d{10,11}"] ,[,,"NA","NA"] ,,[,,"13[123]","\\d{3}"] +,[,,"NA","NA"] ] ,"CM":[,[,,"[237-9]\\d{7}","\\d{8}"] ,[,,"(?:22|33)\\d{6}","\\d{8}"] @@ -1072,15 +1132,16 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1?1[37]","\\d{2,3}"] +,[,,"NA","NA"] ] ,"CN":[,[,,"[1-79]\\d{7,11}|8[0-357-9]\\d{6,9}","\\d{4,12}"] ,[,,"21\\d{8,10}|(?:10|2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898)\\d{8}|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[3-9]|5[2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5\\d|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))\\d{7}|80(?:29|6[03578]|7[018]|81)\\d{4}","\\d{4,12}"] ,[,,"1(?:3\\d|4[57]|5[0-35-9]|8[0235-9])\\d{8}","\\d{11}"] ,[,,"(?:10)?800\\d{7}","\\d{10,12}"] ,[,,"16[08]\\d{5}","\\d{8}"] +,[,,"400\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"400\\d{7}","\\d{10}"] ,"CN",86,"00","0",,,"0",,,,[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]"] ,"0$1","",1] ,[,"([48]00)(\\d{3})(\\d{4})","$1 $2 $3",["[48]00"] @@ -1121,6 +1182,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"(?:4|(?:10)?8)00\\d{7}","\\d{10,12}"] ,[,,"NA","NA"] ,,[,,"1(?:1[09]|20)","\\d{3}"] +,[,,"NA","NA"] ] ,"CO":[,[,,"(?:[13]\\d{0,3}|[24-8])\\d{7}","\\d{7,11}"] ,[,,"[124-8][2-9]\\d{6}","\\d{8}"] @@ -1148,16 +1210,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[29]|23|32|56)","\\d{3}"] +,[,,"NA","NA"] ] -,"CR":[,[,,"[24589]\\d{7,9}","\\d{8,10}"] +,"CR":[,[,,"[24-9]\\d{7,9}","\\d{8,10}"] ,[,,"2[24-7]\\d{6}","\\d{8}"] -,[,,"57[01]\\d[01]\\d{3}|8[36789]\\d{6}","\\d{8}"] +,[,,"5(?:0[0-4]|7[01])\\d{5}|[67][01]\\d{6}|8[36-9]\\d{6}","\\d{8}"] ,[,,"800\\d{7}","\\d{10}"] ,[,,"90[059]\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"40(?:00\\d{4}|10[0-3]\\d{3}|2(?:00\\d|900)\\d{2})","\\d{8}"] -,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[245]|8[3-9]"] +,[,,"40(?:00\\d{4}|10[0-3]\\d{3}|2(?:00\\d|900)\\d{2}|3[01]\\d{4}|5\\d{5})","\\d{8}"] +,"CR",506,"00",,,,"(19(?:0[0-2]|19|77))",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24-7]|8[3-9]"] ,"","$CC $1",0] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]0"] ,"","$CC $1",0] @@ -1166,6 +1229,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}"] +,[,,"NA","NA"] ] ,"CU":[,[,,"[2-57]\\d{5,7}","\\d{4,8}"] ,[,,"2[1-4]\\d{5,6}|3(?:1\\d{6}|[23]\\d{4,6})|4(?:[125]\\d{5,6}|[36]\\d{6}|[78]\\d{4,6})|7\\d{6,7}","\\d{4,8}"] @@ -1186,6 +1250,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[56]","\\d{3}"] +,[,,"NA","NA"] ] ,"CV":[,[,,"[259]\\d{6}","\\d{7}"] ,[,,"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}","\\d{7}"] @@ -1201,6 +1266,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"13[012]","\\d{3}"] +,[,,"NA","NA"] ] ,"CY":[,[,,"[257-9]\\d{7}","\\d{8}"] ,[,,"2[2-6]\\d{6}","\\d{8}"] @@ -1216,6 +1282,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"(?:50|77)\\d{6}","\\d{8}"] ,,[,,"1(?:12|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"CX":[,[,,"[1458]\\d{5,9}","\\d{6,10}"] ,[,,"89164\\d{4}","\\d{8,9}"] @@ -1229,6 +1296,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"000|112","\\d{3}"] +,[,,"NA","NA"] ] ,"CZ":[,[,,"[2-9]\\d{8}","\\d{9}"] ,[,,"2\\d{8}|(?:3[1257-9]|4[16-9]|5[13-9])\\d{7}","\\d{9}"] @@ -1244,10 +1312,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"9(?:5[056]|7[234])\\d{6}","\\d{9}"] ,,[,,"1(?:12|5[058])","\\d{3}"] +,[,,"NA","NA"] ] ,"DE":[,[,,"[1-35-9]\\d{3,14}|4(?:[0-8]\\d{4,12}|9(?:4[1-8]|[0-35-7]\\d)\\d{2,7})","\\d{2,15}"] ,[,,"[246]\\d{5,13}|3(?:[03-9]\\d{4,13}|2\\d{9})|5(?:0[2-8]|[1256]\\d|[38][0-8]|4\\d{0,2}|[79][0-7])\\d{3,11}|7(?:0[2-8]|[1-9]\\d)\\d{3,10}|8(?:0[2-9]|[1-9]\\d)\\d{3,10}|9(?:0[6-9]|[1-9]\\d)\\d{3,10}","\\d{2,15}"] -,[,,"1(?:5\\d{9}|7(?:[0-57-9]|6\\d)\\d{7}|6(?:[02]\\d{7,8}|3\\d{7}))","\\d{10,11}"] +,[,,"1(?:5[0-2579]\\d{8}|6[023]\\d{7,8}|7(?:[0-57-9]\\d?|6\\d)\\d{7})","\\d{10,11}"] ,[,,"800\\d{7,9}","\\d{10,12}"] ,[,,"900(?:[135]\\d{6}|9\\d{7})","\\d{10,11}"] ,[,,"180\\d{5,11}","\\d{8,14}"] @@ -1272,6 +1341,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[02]","\\d{3}"] +,[,,"NA","NA"] ] ,"DJ":[,[,,"[1-8]\\d{5}","\\d{6}"] ,[,,"(?:1[05]|[2-5]\\d)\\d{4}","\\d{6}"] @@ -1287,6 +1357,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}"] +,[,,"NA","NA"] ] ,"DK":[,[,,"[2-9]\\d{7}","\\d{8}"] ,[,,"(?:[2-7]\\d|8[126-9]|9[6-9])\\d{6}","\\d{8}"] @@ -1302,6 +1373,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"DM":[,[,,"[57-9]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}","\\d{7}(?:\\d{3})?"] @@ -1315,6 +1387,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"767",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"333|9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"DO":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"8(?:[04]9[2-9]\\d{6}|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d{2}|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9]))\\d{4})","\\d{7}(?:\\d{3})?"] @@ -1328,6 +1401,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"8[024]9",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}"] +,[,,"NA","NA"] ] ,"DZ":[,[,,"(?:[1-4]|[5-9]\\d)\\d{7}","\\d{8,9}"] ,[,,"(?:1\\d|2[014-79]|3[0-8]|4[0135689])\\d{6}|9619\\d{5}","\\d{8,9}"] @@ -1348,6 +1422,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[47]","\\d{2}"] +,[,,"NA","NA"] ] ,"EC":[,[,,"[2-9]\\d{7}|1\\d{9,10}","\\d{7,11}"] ,[,,"[2-7][2-7]\\d{6}","\\d{7,8}"] @@ -1375,6 +1450,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[12]|12)|911","\\d{3}"] +,[,,"NA","NA"] ] ,"EE":[,[,,"[3-9]\\d{6,7}|800\\d{6,7}","\\d{7,10}"] ,[,,"(?:3[23589]|4(?:0\\d|[3-8])|6\\d|7[1-9]|88)\\d{5}","\\d{7,8}"] @@ -1397,6 +1473,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"800[2-9]\\d{3}","\\d{7}"] ,[,,"NA","NA"] ,,[,,"11[02]","\\d{3}"] +,[,,"NA","NA"] ] ,"EG":[,[,,"1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}","\\d{5,10}"] ,[,,"(?:1[35][23]|2[23]\\d|3\\d|4(?:0[2-4]|[578][23]|64)|5(?:0[234]|[57][23])|6[24-689]3|8(?:[28][2-4]|42|6[23])|9(?:[25]2|3[24]|6[23]|7[2-4]))\\d{6}|1[69]\\d{3}","\\d{5,9}"] @@ -1419,6 +1496,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:2[23]|80)","\\d{3}"] +,[,,"NA","NA"] ] ,"ER":[,[,,"[178]\\d{6}","\\d{6,7}"] ,[,,"1(?:1[12568]|20|40|55|6[146])\\d{4}|8\\d{6}","\\d{6,7}"] @@ -1434,6 +1512,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"ES":[,[,,"[5-9]\\d{8}","\\d{9}"] ,[,,"(?:8(?:[13]0|[28][0-8]|[47][1-9]|5[01346-9]|6[0457-9])|9(?:[1238][0-8]|[47][1-9]|[56]\\d))\\d{6}","\\d{9}"] @@ -1449,6 +1528,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"51\\d{7}","\\d{9}"] ,,[,,"0(?:61|8[05]|9[12])|112","\\d{3}"] +,[,,"NA","NA"] ] ,"ET":[,[,,"[1-59]\\d{8}","\\d{7,9}"] ,[,,"(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-23]|6[5-8])|5(?:1[57]|44|5[0-4])|6(?:18|2[69]|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|22[0-6]|33[0134689]|44[04]|55[0-6]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:11[1-9]|22[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}","\\d{7,9}"] @@ -1464,6 +1544,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11?|[23]|9[17])","\\d{2,3}"] +,[,,"NA","NA"] ] ,"FI":[,[,,"1\\d{4,11}|[2-9]\\d{4,10}","\\d{5,12}"] ,[,,"1(?:[3569][1-8]\\d{3,9}|[47]\\d{5,10})|2[1-8]\\d{3,9}|3(?:[1-8]\\d{3,9}|9\\d{4,8})|[5689][1-8]\\d{3,9}","\\d{5,12}"] @@ -1484,6 +1565,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"10[1-9]\\d{3,7}|2(?:0(?:[16-8]\\d{3,7}|2[14-9]\\d{1,6}|[3-5]\\d{2,7}|9[0-7]\\d{1,6})|9\\d{4,8})|30[1-9]\\d{3,7}|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})","\\d{5,10}"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"FJ":[,[,,"[36-9]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"] ,[,,"(?:3[0-5]|6[25-7]|8[58])\\d{5}","\\d{7}"] @@ -1502,6 +1584,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"91[17]","\\d{3}"] +,[,,"NA","NA"] ] ,"FK":[,[,,"[2-7]\\d{4}","\\d{5}"] ,[,,"[2-47]\\d{4}","\\d{5}"] @@ -1515,6 +1598,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"FM":[,[,,"[39]\\d{6}","\\d{7}"] ,[,,"3[2357]0[1-9]\\d{3}|9[2-6]\\d{5}","\\d{7}"] @@ -1530,6 +1614,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911|320221","\\d{3}(?:\\d{3})?"] +,[,,"NA","NA"] ] ,"FO":[,[,,"[2-9]\\d{5}","\\d{6}"] ,[,,"(?:20|[3-4]\\d|8[19])\\d{4}","\\d{6}"] @@ -1545,6 +1630,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"FR":[,[,,"[124-9]\\d{8}|3\\d{3}(?:\\d{5})?","\\d{4}(?:\\d{5})?"] ,[,,"[1-5]\\d{8}","\\d{9}"] @@ -1563,17 +1649,18 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"3\\d{3}","\\d{4}"] ,[,,"NA","NA"] ,,[,,"1(?:[578]|12)","\\d{2,3}"] +,[,,"NA","NA"] ] -,"GA":[,[,,"[4-9]\\d{5}|0\\d{7}","\\d{6,8}"] -,[,,"(?:4(?:[04-8]\\d|2[04])|(?:5[04-689]|6[024-9]|7\\d|8[236]|9[02368])\\d)\\d{3}","\\d{6}"] +,"GA":[,[,,"[12]\\d{6}|0\\d{7}","\\d{6,8}"] +,[,,"(?:1(?:4[4-8]|7\\d)|2(?:4[02]|5[04-689]|6[024-79]|8[236]|9[02368]))\\d{4}","\\d{6,7}"] ,[,,"0(?:5(?:0[89]|3[0-4]|8[0-26]|9[238])|6(?:0[3-7]|1[01]|2[0-7]|6[0-589]|71|83|9[57])|7(?:1[2-5]|2[89]|3[35-9]|4[01]|5[0-347-9]|[67]\\d|8[457-9]|9[0146]))\\d{4}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"GA",241,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[4-9]"] -,"","",0] +,"GA",241,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[12]"] +,"0$1","",0] ,[,"(0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"] ,"","",0] ] @@ -1581,6 +1668,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"1730|18|13\\d{2}","\\d{2,4}"] +,[,,"NA","NA"] ] ,"GB":[,[,,"\\d{7,10}","\\d{4,10}"] ,[,,"2(?:0[01378]|3[0189]|4[017]|8[0-46-9]|9[012])\\d{7}|1(?:(?:1(?:3[0-48]|[46][0-4]|5[012789]|7[0-39]|8[01349])|21[0-7]|31[0-8]|[459]1\\d|61[0-46-9]))\\d{6}|1(?:2(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-4789]|7[013-9]|9\\d)|3(?:0\\d|[25][02-9]|3[02-579]|[468][0-46-9]|7[1235679]|9[24578])|4(?:0[03-9]|[28][02-5789]|[37]\\d|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1235-9]|2[024-9]|3[015689]|4[02-9]|5[03-9]|6\\d|7[0-35-9]|8[0-468]|9[0-5789])|6(?:0[034689]|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0124578])|7(?:0[0246-9]|2\\d|3[023678]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-5789]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|2[02-689]|3[1-5789]|4[2-9]|5[0-579]|6[234789]|7[0124578]|8\\d|9[2-57]))\\d{6}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-4789]|8[345])))|3(?:638[2-5]|647[23]|8(?:47[04-9]|64[015789]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[123]))|5(?:24(?:3[2-79]|6\\d)|276\\d|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[567]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|955[0-4])|7(?:26(?:6[13-9]|7[0-7])|442\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|84(?:3[2-58]))|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}|176888[234678]\\d{2}|16977[23]\\d{3}","\\d{4,10}"] @@ -1615,6 +1703,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"(?:3[0347]|55)\\d{8}","\\d{10}"] ,,[,,"112|999","\\d{3}"] +,[,,"NA","NA"] ] ,"GD":[,[,,"[4589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|68|73|90)|63[68]|7(?:58|84)|938)\\d{4}","\\d{7}(?:\\d{3})?"] @@ -1628,6 +1717,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"473",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"GE":[,[,,"[3458]\\d{8}","\\d{6,9}"] ,[,,"(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}","\\d{6,9}"] @@ -1646,6 +1736,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0(?:11|22|33)|1(?:1[123]|22)","\\d{3}"] +,[,,"NA","NA"] ] ,"GF":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"594(?:10|2[012457-9]|3[0-57-9]|4[3-9]|5[7-9]|6[0-3]|9[014])\\d{4}","\\d{9}"] @@ -1661,6 +1752,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}"] +,[,,"NA","NA"] ] ,"GG":[,[,,"[135789]\\d{6,9}","\\d{6,10}"] ,[,,"1481\\d{6}","\\d{6,10}"] @@ -1674,6 +1766,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"(?:3[0347]|55)\\d{8}","\\d{10}"] ,,[,,"112|999","\\d{3}"] +,[,,"NA","NA"] ] ,"GH":[,[,,"[235]\\d{6,8}","\\d{7,9}"] ,[,,"3(?:0[237]\\d|[167](?:2[0-6]|7\\d)|2(?:2[0-5]|7\\d)|3(?:2[0-37]|7\\d)|4(?:[27]\\d|30)|5(?:2[0-7]|7\\d)|8(?:2[0-2]|7\\d)|9(?:20|7\\d))\\d{5}","\\d{7,9}"] @@ -1689,6 +1782,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[123]|999","\\d{3}"] +,[,,"NA","NA"] ] ,"GI":[,[,,"[2568]\\d{7}","\\d{8}"] ,[,,"2(?:00\\d|16[0-7]|22[2457])\\d{4}","\\d{8}"] @@ -1702,6 +1796,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|9[09])","\\d{3}"] +,[,,"NA","NA"] ] ,"GL":[,[,,"[1-689]\\d{5}","\\d{6}"] ,[,,"(?:19|3[1-6]|6[14689]|8[14-79]|9\\d)\\d{4}","\\d{6}"] @@ -1717,6 +1812,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"GM":[,[,,"[3-9]\\d{6}","\\d{7}"] ,[,,"(?:4(?:[23]\\d{2}|4(?:1[024679]|[6-9]\\d))|5(?:54[0-7]|6(?:[67]\\d)|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}","\\d{7}"] @@ -1732,21 +1828,23 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1?1[678]","\\d{2,3}"] +,[,,"NA","NA"] ] ,"GN":[,[,,"[3567]\\d{7}","\\d{8}"] ,[,,"30(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])\\d{4}","\\d{8}"] -,[,,"55\\d{6}|6(?:0(?:2\\d|3[3467]|5[2457-9])|[24578]\\d{2}|3(?:[14]0|35))\\d{4}","\\d{8}"] -,[,,"NA","NA"] +,[,,"55\\d{6}|6(?:0(?:2[0-35-9]|3[3467]|5[2457-9])|[24578]\\d{2}|3(?:[14]0|35))\\d{4}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] +,[,,"78\\d{6}","\\d{8}"] ,"GN",224,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"GP":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"590(?:1[12]|2[0-68]|3[28]|4[126-8]|5[067]|6[018]|[89]\\d)\\d{4}","\\d{9}"] @@ -1762,6 +1860,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}"] +,[,,"NA","NA"] ] ,"GQ":[,[,,"[23589]\\d{8}","\\d{9}"] ,[,,"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}","\\d{9}"] @@ -1780,6 +1879,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"GR":[,[,,"[26-9]\\d{9}","\\d{10}"] ,[,,"2(?:1\\d{2}|2(?:3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[289][1-9])|3(?:1\\d|2[1-5]|3[1-4]|[45][1-3]|7[1-7]|8[1-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|2[1-3]|4[124]|5[1-6]|[39][1-4])|6(?:1\\d|3[124]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[134]|9[15-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-7]))\\d{6}","\\d{10}"] @@ -1800,6 +1900,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:00|12|66|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"GT":[,[,,"[2-7]\\d{7}|1[89]\\d{9}","\\d{8}(?:\\d{3})?"] ,[,,"[267][2-9]\\d{6}","\\d{8}"] @@ -1818,6 +1919,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:10|2[03])","\\d{3}"] +,[,,"NA","NA"] ] ,"GU":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[23678])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}","\\d{7}(?:\\d{3})?"] @@ -1831,6 +1933,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"671",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"GW":[,[,,"[3567]\\d{6}","\\d{7}"] ,[,,"3(?:2[0125]|3[1245]|4[12]|5[1-4]|70|9[1-467])\\d{4}","\\d{7}"] @@ -1846,6 +1949,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[378]","\\d{3}"] +,[,,"NA","NA"] ] ,"GY":[,[,,"[2-4679]\\d{6}","\\d{7}"] ,[,,"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}","\\d{7}"] @@ -1861,6 +1965,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"91[123]","\\d{3}"] +,[,,"NA","NA"] ] ,"HK":[,[,,"[235-7]\\d{7}|8\\d{7,8}|9\\d{7,10}","\\d{8,11}"] ,[,,"[23]\\d{7}","\\d{8}"] @@ -1881,6 +1986,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|99[29]","\\d{3}"] +,[,,"NA","NA"] ] ,"HN":[,[,,"[237-9]\\d{7}","\\d{8}"] ,[,,"2(?:2(?:0[019]|1[1-36]|[23]\\d|4[056]|5[57]|9[01])|4(?:2|3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:4[3-5]|5\\d|6[56]|74)|6(?:4[0-378]|[56]\\d|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[34])|8(?:79|8[0-35789]|9[1-57-9]))\\d{4}","\\d{8}"] @@ -1896,6 +2002,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"199","\\d{3}"] +,[,,"NA","NA"] ] ,"HR":[,[,,"[1-7]\\d{5,8}|[89]\\d{6,11}","\\d{6,12}"] ,[,,"(?:1|6[029])\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6}","\\d{6,9}"] @@ -1930,6 +2037,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|92)|9[34]","\\d{2,3}"] +,[,,"NA","NA"] ] ,"HT":[,[,,"[2-489]\\d{7}","\\d{8}"] ,[,,"2(?:[24]\\d|5[1-5]|94)\\d{5}","\\d{8}"] @@ -1945,6 +2053,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[48]","\\d{3}"] +,[,,"NA","NA"] ] ,"HU":[,[,,"[1-9]\\d{7,8}","\\d{6,9}"] ,[,,"(?:1\\d|2(?:1\\d|[2-9])|3[2-7]|4[24-9]|5[2-79]|6[23689]|7(?:1\\d|[2-9])|8[2-57-9]|9[2-69])\\d{6}","\\d{6,9}"] @@ -1963,6 +2072,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[457]|12)","\\d{3}"] +,[,,"NA","NA"] ] ,"ID":[,[,,"[1-9]\\d{6,10}","\\d{5,11}"] ,[,,"2[124]\\d{7,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|2[1-578]|3[1-68]|4[1-3]|5[1-8]|6[1-3568]|7[0-46]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[1246-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:19?|[25]\\d|3[1-469]|4[1-6])|7(?:1[1-46-9]|2[14-9]|[36]\\d|4[1-8]|5[1-9]|7[0-36-9])|9(?:0[12]|1[0134-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}","\\d{5,10}"] @@ -1989,6 +2099,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[02389]","\\d{3}"] +,[,,"NA","NA"] ] ,"IE":[,[,,"[124-9]\\d{6,9}","\\d{5,10}"] ,[,,"1\\d{7,8}|2(?:1\\d{6,7}|[24-9]\\d{5}|3\\d{5,7})|4(?:0[24]\\d{5}|[1269]\\d{7}|[34]\\d{5,7}|5\\d{6}|7\\d{5}|8[0-46-9]\\d{7})|5(?:0[45]\\d{5}|1\\d{6}|2\\d{5,7}|[3679]\\d{7}|8\\d{5})|6(?:1\\d{6}|4\\d{5,7}|[237-9]\\d{5}|[56]\\d{7})|7[14]\\d{7}|9(?:1\\d{6}|[04]\\d{7}|[3-9]\\d{5})","\\d{5,10}"] @@ -2021,10 +2132,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"18[59]0\\d{6}","\\d{10}"] ,[,,"818\\d{6}","\\d{9}"] ,,[,,"112|999","\\d{3}"] +,[,,"NA","NA"] ] ,"IL":[,[,,"[17]\\d{6,9}|[2-589]\\d{3}(?:\\d{3,6})?|6\\d{3}","\\d{4,10}"] ,[,,"(?:[2-489]|7[2-46-8])\\d{7}","\\d{7,9}"] -,[,,"5[024679]\\d{7}","\\d{9}"] +,[,,"5(?:[0246-9]\\d{2}|5(?:22|33|44|5[58]|66|77|88))\\d{5}","\\d{9}"] ,[,,"1(?:80[019]\\d{3}|255)\\d{3}","\\d{7,10}"] ,[,,"1(?:212|(?:919|200)\\d{2})\\d{4}","\\d{8,10}"] ,[,,"1700\\d{6}","\\d{10}"] @@ -2042,6 +2154,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"$1","",0] ,[,"(1212)(\\d{2})(\\d{2})","$1-$2-$3",["121"] ,"$1","",0] +,[,"(1599)(\\d{6})","$1-$2",["15"] +,"$1","",0] ,[,"(\\d{4})","*$1",["[2-689]"] ,"$1","",0] ] @@ -2049,6 +2163,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"1700\\d{6}|[2-689]\\d{3}","\\d{4,10}"] ,[,,"[2-689]\\d{3}","\\d{4}"] ,,[,,"1(?:0[012]|12)","\\d{3}"] +,[,,"1599\\d{6}","\\d{10}"] ] ,"IM":[,[,,"[135789]\\d{6,9}","\\d{6,10}"] ,[,,"1624\\d{6}","\\d{6,10}"] @@ -2062,6 +2177,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"3(?:08162\\d|3\\d{5}|4(?:40[49]06|5624\\d)|7(?:0624\\d|2299\\d))\\d{3}|55\\d{8}","\\d{10}"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"IN":[,[,,"1\\d{7,12}|[2-9]\\d{9,10}","\\d{6,13}"] ,[,,"(?:11|2[02]|33|4[04]|79)[2-6]\\d{7}|80[2-46]\\d{7}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[126-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-6]\\d{6}|(?:(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[13-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1-5]|4[25-8]|5[125689]|6[235-7]|7[157-9]|8[2-467])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24-58]|7[23-689]|8[1-6])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d|7(?:(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|9\\d)\\d|8(?:2[0-6]|[013-8]\\d)))[2-6]\\d{5}","\\d{6,10}"] @@ -2096,6 +2212,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"1(?:600\\d{6}|8(?:0(?:0\\d{4,8}|3\\d{9})|6(?:0\\d{7}|[12]\\d{9})))","\\d{8,13}"] ,[,,"1860\\d{7}","\\d{11}"] ,,[,,"1(?:0[0128]|12|298)|2611","\\d{3,4}"] +,[,,"NA","NA"] ] ,"IO":[,[,,"3\\d{6}","\\d{7}"] ,[,,"37\\d{5}","\\d{7}"] @@ -2111,6 +2228,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"IQ":[,[,,"[1-7]\\d{7,9}","\\d{6,10}"] ,[,,"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}","\\d{6,9}"] @@ -2131,10 +2249,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"IR":[,[,,"[2-6]\\d{4,9}|9(?:[134]\\d{8}|9\\d{2,8})|[178]\\d{9}","\\d{4,10}"] ,[,,"2(?:1[2-9]\\d{2,7}|51\\d{3,7})|(?:241|3(?:11|51)|441|5[14]1)\\d{4,7}|(?:3(?:34|41)|6(?:11|52))\\d{6,7}|(?:1(?:[134589][12]|[27][1-4])|2(?:2[189]|[3689][12]|42|5[256]|7[34])|3(?:12|2[1-4]|3[125]|4[24-9]|5[23]|[6-9][12])|4(?:[135-9][12]|2[1-467]|4[2-4])|5(?:12|2[89]|3[1-5]|4[2-8]|[5-7][12]|8[1245])|6(?:12|[347-9][12]|51|6[1-6])|7(?:[13589][12]|2[1289]|4[1-4]|6[1-6]|7[1-3])|8(?:[145][12]|3[124578]|6[1256]|7[1245]))\\d{7}","\\d{5,10}"] -,[,,"9(?:1\\d|3[124-8])\\d{7}","\\d{10}"] +,[,,"9(?:1\\d|3[124-9])\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -2153,10 +2272,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"9990\\d{0,6}","\\d{4,10}"] ,,[,,"1(?:1[025]|25)","\\d{3}"] +,[,,"NA","NA"] ] ,"IS":[,[,,"[4-9]\\d{6}|38\\d{7}","\\d{7,9}"] ,[,,"(?:4(?:1[0-245]|2[0-7]|[37][0-8]|4[0245]|5[0-356]|6\\d|8[0-46-8]|9[013-79])|5(?:05|[156]\\d|2[02578]|3[013-6]|4[03-6]|7[0-2578]|8[0-25-9]|9[013-689])|87[23])\\d{4}","\\d{7}"] -,[,,"38[59]\\d{6}|(?:6(?:1[0-8]|2[0-8]|3[0-27-9]|4[0-29]|5[029]|[67][0-69]|[89]\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}"] +,[,,"38[59]\\d{6}|(?:6(?:1[0-8]|3[0-27-9]|4[0-27]|5[0-29]|[67][0-69]|9\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}"] ,[,,"800\\d{4}","\\d{7}"] ,[,,"90\\d{5}","\\d{7}"] ,[,,"NA","NA"] @@ -2171,10 +2291,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"388\\d{6}|(?:6(?:2[0-8]|49|8\\d)|8(?:2[6-9]|[38]\\d|50|7[014-9])|95[48])\\d{4}","\\d{7,9}"] ] -,"IT":[,[,,"[0189]\\d{5,10}|3\\d{8,9}","\\d{6,11}"] +,"IT":[,[,,"[0189]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})","\\d{6,11}"] ,[,,"0(?:[26]\\d{4,9}|[13-57-9](?:[0159]\\d{4,8}|[2-46-8]\\d{5,8}))","\\d{6,11}"] -,[,,"3\\d{8,9}","\\d{9,10}"] +,[,,"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})","\\d{9,11}"] ,[,,"80(?:0\\d{6}|3\\d{3})","\\d{6,9}"] ,[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|9\\d{6})","\\d{6,9}"] ,[,,"84[78]\\d{6,7}","\\d{9,10}"] @@ -2196,6 +2317,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"","",0] ,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13]|8(?:00|4[78]|99)"] ,"","",0] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3"] +,"","",0] ,[,"(\\d{3})(\\d{3,6})","$1 $2",["8(?:03|92)"] ,"","",0] ] @@ -2203,6 +2326,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"11[2358]","\\d{3}"] +,[,,"NA","NA"] ] ,"JE":[,[,,"[135789]\\d{6,9}","\\d{6,10}"] ,[,,"1534\\d{6}","\\d{6,10}"] @@ -2216,6 +2340,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))\\d{4}|55\\d{8}","\\d{10}"] ,,[,,"112|999","\\d{3}"] +,[,,"NA","NA"] ] ,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027-9]|[23]\\d|40|5[06]|6[2-489]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468]))\\d{4}","\\d{7}(?:\\d{3})?"] @@ -2229,43 +2354,49 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"876",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[09]","\\d{3}"] +,[,,"NA","NA"] ] ,"JO":[,[,,"[235-9]\\d{7,8}","\\d{7,9}"] -,[,,"[2356][2-8]\\d{6}","\\d{7,8}"] -,[,,"7(?:[1-8]\\d|9[02-9])\\d{6}","\\d{9}"] +,[,,"(?:2[67]|32|53|6[2-5]|87)\\d{6}","\\d{7,8}"] +,[,,"7(?:45|5\\d|7[2-79]|8[5-8]|9[035-9])\\d{6}","\\d{9}"] ,[,,"80\\d{6}","\\d{8}"] ,[,,"900\\d{5}","\\d{8}"] ,[,,"85\\d{6}","\\d{8}"] ,[,,"70\\d{7}","\\d{9}"] ,[,,"NA","NA"] -,"JO",962,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]"] +,"JO",962,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"] ,"(0$1)","",0] -,[,"(7)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["7[457-9]"] +,[,"(7)(\\d{4})(\\d{4})","$1 $2 $3",["7[457-9]"] ,"0$1","",0] -,[,"(\\d{3})(\\d{5,6})","$1 $2",["70|[89]"] +,[,"(\\d{3})(\\d{5,6})","$1 $2",["70|8[0158]|9"] ,"0$1","",0] ] -,,[,,"NA","NA"] +,,[,,"74(?:66|77)\\d{5}","\\d{9}"] ,,,[,,"NA","NA"] -,[,,"8(?:10|[78]\\d)\\d{5}","\\d{8}"] -,,[,,"112|911","\\d{3}"] +,[,,"8(?:10|8\\d)\\d{5}","\\d{8}"] +,,[,,"1(?:12|91)|911","\\d{3}"] +,[,,"NA","NA"] ] -,"JP":[,[,,"[1-9]\\d{8,9}|0(?:7\\d{5,6}|8\\d{7})","\\d{7,10}"] +,"JP":[,[,,"[1-9]\\d{8,9}|0(?:3\\d{9}|7\\d{5,7}|8\\d{7})","\\d{7,11}"] ,[,,"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\\d|[36][1-9]\\d|4(?:6[02-8]|[2-578]\\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\\d)|7(?:3[4-9]|4[02-9]|[25-9]\\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\\d)|9(?:[679][1-9]|[2-58]\\d))\\d{6}","\\d{9}"] ,[,,"(?:[79]0\\d|80[1-9])\\d{7}","\\d{10}"] -,[,,"120\\d{6}|800\\d{7}|0(?:777(?:[01]\\d{2}|5\\d{3})|882[1245]\\d{4})","\\d{7,10}"] +,[,,"120\\d{6}|800\\d{7}|0(?:777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,10}"] ,[,,"990\\d{6}","\\d{9}"] ,[,,"NA","NA"] ,[,,"60\\d{7}","\\d{9}"] -,[,,"50\\d{8}","\\d{10}"] +,[,,"(?:037|50)\\d{8}","\\d{10,11}"] ,"JP",81,"010","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"] ,"0$1","",0] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"] ,"0$1","",0] -,[,"(\\d{3})(\\d{4,5})","$1-$2",["077"] +,[,"(\\d{3})(\\d{4})","$1-$2",["077"] +,"0$1","",0] +,[,"(\\d{3})(\\d{2})(\\d{3,4})","$1-$2-$3",["077"] ,"0$1","",0] ,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["088"] ,"0$1","",0] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1-$2-$3",["037"] +,"0$1","",0] ,[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]0|80[1-9]"] ,"0$1","",0] ,[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"] @@ -2282,27 +2413,31 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ] ,,[,,"20\\d{8}","\\d{10}"] -,,,[,,"0(?:777(?:[01]\\d{2}|5\\d{3})|882[1245]\\d{4})","\\d{7,9}"] +,,,[,,"0(?:37\\d{8}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,11}"] ,[,,"570\\d{6}","\\d{9}"] ,1,[,,"11[09]","\\d{3}"] +,[,,"NA","NA"] ] -,"KE":[,[,,"\\d{6,10}","\\d{4,10}"] +,"KE":[,[,,"20\\d{4,7}|[4-9]\\d{5,9}","\\d{4,10}"] ,[,,"(?:20|4[0-6]|5\\d|6[0-24-9])\\d{4,7}","\\d{4,9}"] -,[,,"7(?:0[0-5]|[123]\\d|5[0-3]|7[0-5])\\d{6}","\\d{9}"] -,[,,"8(?:00|88)\\d{6,7}","\\d{9,10}"] -,[,,"9(?:00|1)\\d{6,7}","\\d{8,10}"] +,[,,"7(?:0[0-5]|[123]\\d|5[0-4]|7[0-5]|8[6-9])\\d{6}","\\d{9}"] +,[,,"800[245-8]\\d{5,6}","\\d{9,10}"] +,[,,"9(?:00[2-578]|11\\d)\\d{5}","\\d{9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"KE",254,"000","0",,,"0",,,,[[,"(\\d{2})(\\d{4,7})","$1 $2",["[2-6]|91"] +,"KE",254,"000","0",,,"0",,,,[[,"(\\d{2})(\\d{4,7})","$1 $2",["[24-6]"] ,"0$1","",0] -,[,"(\\d{3})(\\d{6,7})","$1 $2",["[78]|90"] +,[,"(\\d{3})(\\d{6,7})","$1 $2",["7"] +,"0$1","",0] +,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"] ,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|999","\\d{3}"] +,[,,"NA","NA"] ] ,"KG":[,[,,"[356-8]\\d{8,9}","\\d{5,10}"] ,[,,"(?:3(?:1(?:2\\d|3[1-9]|47|5[02]|6[1-8])|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6[0-4])|5(?:22|3[4-7]|59|6[0-5])|6(?:22|5[35-7]|6[0-3])|7(?:22|3[468]|4[1-9]|59|6\\d|7[5-7])|9(?:22|4[1-8]|6[0-8]))|6(?:09|12|2[2-4])\\d)\\d{5}","\\d{5,10}"] @@ -2323,6 +2458,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[123]","\\d{3}"] +,[,,"NA","NA"] ] ,"KH":[,[,,"[1-9]\\d{7,9}","\\d{6,10}"] ,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[567][2-5])[2-46-9]\\d{5}","\\d{6,8}"] @@ -2341,6 +2477,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[789]|666","\\d{3}"] +,[,,"NA","NA"] ] ,"KI":[,[,,"[2-689]\\d{4}","\\d{5}"] ,[,,"(?:[234]\\d|50|8[1-5])\\d{3}","\\d{5}"] @@ -2354,6 +2491,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[2349]","\\d{3}"] +,[,,"NA","NA"] ] ,"KM":[,[,,"[379]\\d{6}","\\d{7}"] ,[,,"7(?:6[0-37-9]|7[0-57-9])\\d{4}","\\d{7}"] @@ -2369,6 +2507,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}"] +,[,,"NA","NA"] ] ,"KN":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"869(?:2(?:29|36)|302|4(?:6[5-9]|70))\\d{4}","\\d{7}(?:\\d{3})?"] @@ -2382,6 +2521,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"869",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"333|9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"KP":[,[,,"1\\d{9}|[28]\\d{7}","\\d{6,8}|\\d{10}"] ,[,,"2\\d{7}|85\\d{6}","\\d{6,8}"] @@ -2402,6 +2542,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}","\\d{8}"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"KR":[,[,,"[1-7]\\d{3,9}|8\\d{8}","\\d{4,10}"] ,[,,"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})","\\d{4,10}"] @@ -2436,10 +2577,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88))\\d{4}","\\d{8}"] ,,[,,"11[29]","\\d{3}"] +,[,,"NA","NA"] ] -,"KW":[,[,,"[12569]\\d{6,7}","\\d{7,8}"] +,"KW":[,[,,"[12569]\\d{6,7}|65816\\d{6}","\\d{7,8}|\\d{11}"] ,[,,"(?:18\\d|2(?:[23]\\d{2}|4[1-35-9]\\d|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7])))\\d{4}","\\d{7,8}"] -,[,,"(?:5(?:0[0-26]|5\\d)|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[69])|9(?:0[09]|4[049]|66|[79]\\d))\\d{5}","\\d{8}"] +,[,,"(?:5(?:0[0-26]|5\\d)|6(?:0[034679]|5(?:[015-79]|8(?:[02-9]|1[0-57-9]))|6\\d|7[067]|9[69])|9(?:0[09]|4[049]|66|[79]\\d))\\d{5}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -2449,11 +2591,14 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"","",0] ,[,"(5[05]\\d)(\\d{5})","$1 $2",["5"] ,"","",0] +,[,"(65816)(\\d{6})","$1 $2",["65816"] +,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"65816\\d{6}","\\d{11}"] ] ,"KY":[,[,,"[3589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:6[6-9]|77)|8(?:00|1[45]|25|4[89]|88)|9(?:14|4[035-9]))\\d{4}","\\d{7}(?:\\d{3})?"] @@ -2467,10 +2612,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"345",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"KZ":[,[,,"(?:7\\d{2}|80[09])\\d{7}","\\d{10}"] -,[,,"7(?:1(?:0(?:[23]\\d|4[023]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[1-79]|4[0-35-9]|59)|4(?:2\\d|3[013-79]|4[0-8]|5[1-79])|5(?:2\\d|3[1-8]|4[1-7]|59)|6(?:2\\d|[34]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679]|)|3(?:[234]\\d|5[139]|)|4(?:2\\d|3[1235-9]|59)|5(?:[23]\\d|4[01246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[23]\\d|40|5[279]|7\\d)|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))|3622)\\d{5}","\\d{10}"] -,[,,"7(?:0[01257]|6[02-4]|7[157])\\d{7}","\\d{10}"] +,[,,"7(?:1(?:0(?:[23]\\d|4[023]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[1-79]|4[0-35-9]|59)|4(?:2\\d|3[013-79]|4[0-8]|5[1-79])|5(?:2\\d|3[1-8]|4[1-7]|59)|6(?:[234]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[234]\\d|5[139])|4(?:2\\d|3[1235-9]|59)|5(?:[23]\\d|4[01246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[23]\\d|40|5[279]|7\\d)|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))|3622)\\d{5}","\\d{10}"] +,[,,"7(?:0[01257]|6[02-4]|7[1578])\\d{7}","\\d{10}"] ,[,,"800\\d{7}","\\d{10}"] ,[,,"809\\d{7}","\\d{10}"] ,[,,"NA","NA"] @@ -2480,6 +2626,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"751\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}"] +,[,,"NA","NA"] ] ,"LA":[,[,,"[2-57]\\d{7,9}","\\d{6,10}"] ,[,,"(?:[2-57]1|54)\\d{6}","\\d{6,8}"] @@ -2498,10 +2645,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[015]","\\d{3}"] +,[,,"NA","NA"] ] ,"LB":[,[,,"[13-9]\\d{6,7}","\\d{7,8}"] ,[,,"(?:[14-6]\\d{2}|7(?:[2-57-9]\\d|62)|[89][2-9]\\d)\\d{4}","\\d{7}"] -,[,,"(?:3\\d|7(?:[01]\\d|6[136-9]))\\d{5}","\\d{7,8}"] +,[,,"(?:3\\d|7(?:[01]\\d|6[01346-9]))\\d{5}","\\d{7,8}"] ,[,,"NA","NA"] ,[,,"9[01]\\d{6}","\\d{8}"] ,[,,"8[01]\\d{6}","\\d{8}"] @@ -2509,13 +2657,14 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,"LB",961,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-6]|7(?:[2-57-9]|62)|[89][2-9]"] ,"0$1","",0] -,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[136-9])"] -,"0$1","",0] +,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[01346-9])"] +,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|40|75)|999","\\d{3}"] +,[,,"NA","NA"] ] ,"LC":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"758(?:234|4(?:5[0-9]|6[2-9]|8[0-2])|638|758)\\d{4}","\\d{7}(?:\\d{3})?"] @@ -2529,6 +2678,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"758",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"LI":[,[,,"(?:66|80|90)\\d{7}|[237-9]\\d{6}","\\d{7,9}"] ,[,,"(?:2(?:17|3\\d|6[02-58]|96)|3(?:02|7[01357]|8[048]|9[0269])|870)\\d{4}","\\d{7}"] @@ -2551,10 +2701,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[278]|44)","\\d{3}"] +,[,,"NA","NA"] ] ,"LK":[,[,,"[1-9]\\d{8}","\\d{7,9}"] ,[,,"(?:[189]1|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}","\\d{7,9}"] -,[,,"7[12578]\\d{7}","\\d{9}"] +,[,,"7[125-8]\\d{7}","\\d{9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -2569,10 +2720,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[0189]","\\d{3}"] +,[,,"NA","NA"] ] ,"LR":[,[,,"(?:[29]\\d|[4-6]|7\\d{1,2}|[38]\\d{2})\\d{6}","\\d{7,9}"] ,[,,"2\\d{7}","\\d{8}"] -,[,,"(?:4[67]|5\\d|6[4-8]|7(?:76\\d|\\d{2})|880\\d)\\d{5}","\\d{7,9}"] +,[,,"(?:4[67]|5\\d|6[4-8]|7(?:7[67]\\d|\\d{2})|880\\d)\\d{5}","\\d{7,9}"] ,[,,"NA","NA"] ,[,,"90\\d{6}","\\d{8}"] ,[,,"NA","NA"] @@ -2591,6 +2743,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"355|911","\\d{3}"] +,[,,"NA","NA"] ] ,"LS":[,[,,"[2568]\\d{7}","\\d{8}"] ,[,,"2\\d{7}","\\d{8}"] @@ -2606,6 +2759,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[257]","\\d{3}"] +,[,,"NA","NA"] ] ,"LT":[,[,,"[3-9]\\d{7}","\\d{8}"] ,[,,"(?:3[1478]|4[124-6]|52)\\d{6}","\\d{8}"] @@ -2615,17 +2769,20 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,[,,"700\\d{5}","\\d{8}"] ,[,,"NA","NA"] -,"LT",370,"00","8",,,"8",,,,[[,"([34]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["37|4(?:1|5[45]|6[2-4])"] -,"8 $1","",0] -,[,"([3-9]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["3[148]|4(?:[24]|6[09])|5(?:[0189]|28)|[6-9]"] -,"8 $1","",0] -,[,"(5)(2[0-79]\\d)(\\d{4})","$1 $2 $3",["52[0-79]"] +,"LT",370,"00","8",,,"8",,,,[[,"([34]\\d)(\\d{6})","$1 $2",["37|4(?:1|5[45]|6[2-4])"] +,"(8-$1)","",0] +,[,"([3-6]\\d{2})(\\d{5})","$1 $2",["3[148]|4(?:[24]|6[09])|528|6"] +,"(8-$1)","",0] +,[,"([7-9]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"] ,"8 $1","",0] +,[,"(5)(2\\d{2})(\\d{4})","$1 $2 $3",["52[0-79]"] +,"(8-$1)","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0(?:11?|22?|33?)|1(?:0[123]|12)","\\d{2,3}"] +,[,,"NA","NA"] ] ,"LU":[,[,,"[24-9]\\d{3,10}|3(?:[0-46-9]\\d{2,9}|5[013-9]\\d{1,8})","\\d{4,11}"] ,[,,"(?:2(?:2\\d{1,2}|3[2-9]|[67]\\d|4[1-8]\\d?|5[1-5]\\d?|9[0-24-9]\\d?)|3(?:[059][05-9]|[13]\\d|[26][015-9]|4[0-26-9]|7[0-389]|8[08])\\d?|4\\d{2,3}|5(?:[01458]\\d|[27][0-69]|3[0-3]|[69][0-7])\\d?|7(?:1[019]|2[05-9]|3[05]|[45][07-9]|[679][089]|8[06-9])\\d?|8(?:0[2-9]|1[0-36-9]|3[3-9]|[469]9|[58][7-9]|7[89])\\d?|9(?:0[89]|2[0-49]|37|49|5[0-27-9]|7[7-9]|9[0-478])\\d?)\\d{1,7}","\\d{4,11}"] @@ -2658,6 +2815,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[23]","\\d{3}"] +,[,,"NA","NA"] ] ,"LV":[,[,,"[2689]\\d{7}","\\d{8}"] ,[,,"6\\d{7}","\\d{8}"] @@ -2673,6 +2831,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0[123]|112","\\d{2,3}"] +,[,,"NA","NA"] ] ,"LY":[,[,,"[25679]\\d{8}","\\d{7,9}"] ,[,,"(?:2[1345]|5[1347]|6[123479]|71)\\d{7}","\\d{7,9}"] @@ -2688,6 +2847,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[013]","\\d{3}"] +,[,,"NA","NA"] ] ,"MA":[,[,,"[5689]\\d{8}","\\d{9}"] ,[,,"5(?:2(?:(?:[015-7]\\d|2[2-9]|3[2-57]|4[2-8]|8[235-9]|)\\d|9(?:0\\d|[89]0))|3(?:(?:[0-4]\\d|[57][2-9]|6[235-8]|9[3-9])\\d|8(?:0\\d|[89]0)))\\d{4}","\\d{9}"] @@ -2710,6 +2870,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:[59]|77)","\\d{2,3}"] +,[,,"NA","NA"] ] ,"MC":[,[,,"[4689]\\d{7,8}","\\d{8,9}"] ,[,,"9[2-47-9]\\d{6}","\\d{8}"] @@ -2730,6 +2891,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"8\\d{7}","\\d{8}"] ,[,,"NA","NA"] ,,[,,"1(?:12|[578])","\\d{2,3}"] +,[,,"NA","NA"] ] ,"MD":[,[,,"[256-9]\\d{7}","\\d{8}"] ,[,,"(?:2(?:1[0569]|2\\d|3[015-7]|4[1-46-9]|5[0-24689]|6[2-589]|7[1-37]|9[1347-9])|5(?:33|5[257]))\\d{5}","\\d{5,8}"] @@ -2750,6 +2912,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"8(?:03|14)\\d{5}","\\d{8}"] ,,[,,"112|90[123]","\\d{3}"] +,[,,"NA","NA"] ] ,"ME":[,[,,"[2-9]\\d{7,8}","\\d{6,9}"] ,[,,"(?:20[2-8]|3(?:0[2-7]|1[35-7]|2[3567]|3[4-7])|4(?:0[237]|1[27])|5(?:0[47]|1[27]|2[378]))\\d{5}","\\d{6,8}"] @@ -2768,6 +2931,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"77\\d{6}","\\d{8}"] ,,[,,"1(?:12|2[234])","\\d{3}"] +,[,,"NA","NA"] ] ,"MG":[,[,,"[23]\\d{8}","\\d{7,9}"] ,[,,"2(?:0(?:(?:2\\d|4[47]|5[3467]|6[279]|8[268]|9[245])\\d|7(?:2[29]|[35]\\d))|210\\d)\\d{4}","\\d{7,9}"] @@ -2783,6 +2947,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11?[78]","\\d{2,3}"] +,[,,"NA","NA"] ] ,"MF":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"590(?:10|2[79]|5[128]|[78]7)\\d{4}","\\d{9}"] @@ -2796,6 +2961,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}"] +,[,,"NA","NA"] ] ,"MH":[,[,,"[2-6]\\d{6}","\\d{7}"] ,[,,"(?:247|528|625)\\d{4}","\\d{7}"] @@ -2811,6 +2977,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"MK":[,[,,"[2-578]\\d{7}","\\d{8}"] ,[,,"(?:2(?:[23]\\d|5[125]|61)|3(?:1[3-6]|2[2-6]|3[2-5]|4[235])|4(?:[23][2-6]|4[3-6]|5[25]|6[25-8]|7[24-6]|8[4-6]))\\d{5}","\\d{6,8}"] @@ -2831,6 +2998,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|9[234])","\\d{3}"] +,[,,"NA","NA"] ] ,"ML":[,[,,"[246-8]\\d{7}","\\d{8}"] ,[,,"(?:2(?:0(?:2[0-589]|7[027-9])|1(?:2[5-7]|[3-689]\\d))|442\\d)\\d{4}","\\d{8}"] @@ -2846,32 +3014,34 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}"] +,[,,"NA","NA"] ] -,"MM":[,[,,"[124-8]\\d{5,7}|9\\d{7,8}","\\d{5,9}"] -,[,,"(?:1\\d|2|4[2-6]|5[2-9]|6\\d|7[0-5]|8[1-6])\\d{5}|1333\\d{4}","\\d{5,8}"] -,[,,"9(?:[25689]\\d|444)\\d{5}","\\d{8,9}"] +,"MM":[,[,,"[124-8]\\d{5,7}|9(?:[25689]|[47]\\d)\\d{6}","\\d{5,9}"] +,[,,"(?:1\\d|2|4[2-6]|5[2-9]|6(?:[0-689]|7\\d?)|7[0-5]|8(?:[2-6]|1\\d?))\\d{5}|1333\\d{4}","\\d{5,8}"] +,[,,"9(?:[25689]|[47]\\d)\\d{6}","\\d{8,9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"MM",95,"00",,,,,,,,[[,"(1)(\\d{3})(\\d{3})","$1 $2 $3",["1"] -,"","",0] +,"MM",95,"00","0",,,"0",,,,[[,"(1)(\\d{3})(\\d{3})","$1 $2 $3",["1"] +,"0$1","",0] ,[,"(1)(3)(33\\d)(\\d{3})","$1 $2 $3 $4",["133","1333"] -,"","",0] +,"0$1","",0] ,[,"(2)(\\d{2})(\\d{3})","$1 $2 $3",["2"] -,"","",0] +,"0$1","",0] +,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["67|81"] +,"0$1","",0] ,[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[4-8]"] -,"","",0] -,[,"(9444)(\\d{5})","$1 $2",["94"] -,"","",0] -,[,"(9)([25689]\\d{2})(\\d{4})","$1 $2 $3",["9[25689]"] -,"","",0] +,"0$1","",0] +,[,"(9)(\\d{3})(\\d{4,5})","$1 $2 $3",["9[24-9]"] +,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"199","\\d{3}"] +,[,,"NA","NA"] ] ,"MN":[,[,,"[12]\\d{7,9}|[57-9]\\d{7}","\\d{6,10}"] ,[,,"[12](?:1\\d|2(?:[1-3]\\d?|7\\d)|3[2-8]\\d{1,2}|4[2-68]\\d{1,2}|5[1-4689]\\d{1,2})\\d{5}|(?:5[0568]|70)\\d{6}","\\d{6,10}"] @@ -2896,6 +3066,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10[0-3]","\\d{3}"] +,[,,"NA","NA"] ] ,"MO":[,[,,"[268]\\d{7}","\\d{8}"] ,[,,"(?:28[2-57-9]|8[2-57-9]\\d)\\d{5}","\\d{8}"] @@ -2911,6 +3082,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"MP":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[589]|8[3-9]8|989)\\d{4}","\\d{7}(?:\\d{3})?"] @@ -2924,6 +3096,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"670",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"MQ":[,[,,"[56]\\d{8}","\\d{9}"] ,[,,"596(?:0[2-5]|[12]0|3[05-9]|4[024-8]|[5-7]\\d|89|9[4-8])\\d{4}","\\d{9}"] @@ -2939,6 +3112,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|[578])","\\d{2,3}"] +,[,,"NA","NA"] ] ,"MR":[,[,,"[2-48]\\d{7}","\\d{8}"] ,[,,"25[08]\\d{5}|35\\d{6}|45[1-7]\\d{5}","\\d{8}"] @@ -2954,6 +3128,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}"] +,[,,"NA","NA"] ] ,"MS":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"664491\\d{4}","\\d{7}(?:\\d{3})?"] @@ -2967,6 +3142,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"664",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"MT":[,[,,"[2579]\\d{7}","\\d{8}"] ,[,,"2(?:0(?:1[0-6]|[69]\\d)|[1-357]\\d{2})\\d{4}","\\d{8}"] @@ -2982,6 +3158,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"MU":[,[,,"[2-9]\\d{6}","\\d{7}"] ,[,,"(?:2(?:[034789]\\d|1[0-7])|4(?:[013-8]\\d|2[4-7])|[56]\\d{2}|8(?:14|3[129]))\\d{4}","\\d{7}"] @@ -2997,16 +3174,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[45]|99\\d","\\d{3}"] +,[,,"NA","NA"] ] -,"MV":[,[,,"[367]\\d{6}|9(?:00\\d{7}|\\d{6})","\\d{7,10}"] +,"MV":[,[,,"[3467]\\d{6}|9(?:00\\d{7}|\\d{6})","\\d{7,10}"] ,[,,"(?:3(?:0[01]|3[0-59]|)|6(?:[567][02468]|8[024689]|90))\\d{4}","\\d{7}"] -,[,,"(?:7[3-9]|9[6-9])\\d{5}","\\d{7}"] +,[,,"(?:46[46]|7[3-9]\\d|9[6-9]\\d)\\d{4}","\\d{7}"] ,[,,"NA","NA"] ,[,,"900\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"MV",960,"0(?:0|19)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1-$2",["[367]|9(?:[1-9]|0[1-9])"] +,"MV",960,"0(?:0|19)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1-$2",["[3467]|9(?:[1-9]|0[1-9])"] ,"","",0] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["900"] ,"","",0] @@ -3015,10 +3193,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:02|19)","\\d{3}"] +,[,,"NA","NA"] ] -,"MW":[,[,,"(?:[13-5]|[27]\\d{2}|[89](?:\\d{2})?)\\d{6}","\\d{7,9}"] +,"MW":[,[,,"(?:[3-5]|[27]\\d{2}|[189](?:\\d{2})?)\\d{6}","\\d{7,9}"] ,[,,"(?:1[2-9]|21\\d{2})\\d{5}","\\d{7,9}"] -,[,,"(?:[3-5]|77|8(?:8\\d)?|9(?:9\\d)?)\\d{6}","\\d{7,9}"] +,[,,"(?:111|[3-5]|77\\d|8(?:8\\d)?|9(?:9\\d)?)\\d{6}","\\d{7,9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -3028,15 +3207,16 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"] ,"0$1","",0] -,[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"] +,[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1789]"] ,"0$1","",0] -,[,"(\\d)(\\d{3,4})(\\d{3,4})","$1 $2 $3",["[89]"] +,[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89]"] ,"0$1","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"199|99[789]","\\d{3}"] +,[,,"NA","NA"] ] ,"MX":[,[,,"[1-9]\\d{9,10}","\\d{7,11}"] ,[,,"(?:33|55|81)\\d{8}|(?:2(?:2[2-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[234][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7}","\\d{7,10}"] @@ -3068,6 +3248,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"06[568]|911","\\d{3}"] +,[,,"NA","NA"] ] ,"MY":[,[,,"[13-9]\\d{7,9}","\\d{6,10}"] ,[,,"(?:3\\d{2}|[4-79]\\d|8[2-9])\\d{6}","\\d{6,9}"] @@ -3094,16 +3275,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|999","\\d{3}"] +,[,,"NA","NA"] ] ,"MZ":[,[,,"[28]\\d{7,8}","\\d{8,9}"] ,[,,"2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}","\\d{8}"] -,[,,"8[24]\\d{7}","\\d{9}"] +,[,,"8[246]\\d{7}","\\d{9}"] ,[,,"800\\d{6}","\\d{9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"MZ",258,"00",,,,,,,,[[,"([28]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[24]"] +,"MZ",258,"00",,,,,,,,[[,"([28]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[246]"] ,"","",0] ,[,"(80\\d)(\\d{3})(\\d{3})","$1 $2 $3",["80"] ,"","",0] @@ -3112,6 +3294,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:1[79]|9[78])","\\d{3}"] +,[,,"NA","NA"] ] ,"NA":[,[,,"[68]\\d{7,8}","\\d{8,9}"] ,[,,"6(?:1(?:17|2(?:[0189]\\d|[23-6]|7\\d?)|3(?:2\\d|3[378])|4[01]|69|7[014])|2(?:17|25|5(?:[0-36-8]|4\\d?)|69|70)|3(?:17|2(?:[0237]\\d?|[14-689])|34|6[29]|7[01]|81)|4(?:17|2(?:[012]|7?)|4(?:[06]|1\\d)|5(?:[01357]|[25]\\d?)|69|7[01])|5(?:17|2(?:[0459]|[23678]\\d?)|69|7[01])|6(?:17|2(?:5|6\\d?)|38|42|69|7[01])|7(?:17|2(?:[569]|[234]\\d?)|3(?:0\\d?|[13])|69|7[01]))\\d{4}","\\d{8,9}"] @@ -3120,8 +3303,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"8701\\d{5}","\\d{9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"886\\d{5}","\\d{8}"] -,"NA",264,"00","0",,,"0",,,,[[,"(8\\d)(\\d{3})(\\d{4})","$1 $2 $3",["8[125]"] +,[,,"8(3\\d{2}|86)\\d{5}","\\d{8,9}"] +,"NA",264,"00","0",,,"0",,,,[[,"(8\\d)(\\d{3})(\\d{4})","$1 $2 $3",["8[1235]"] ,"0$1","",0] ,[,"(6\\d)(\\d{2,3})(\\d{4})","$1 $2 $3",["6"] ,"0$1","",0] @@ -3134,6 +3317,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"10111","\\d{5}"] +,[,,"NA","NA"] ] ,"NC":[,[,,"[2-47-9]\\d{5}","\\d{6}"] ,[,,"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}","\\d{6}"] @@ -3149,6 +3333,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[5-8]","\\d{2}"] +,[,,"NA","NA"] ] ,"NE":[,[,,"[029]\\d{7}","\\d{8}"] ,[,,"2(?:0(?:20|3[1-7]|4[134]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}","\\d{8}"] @@ -3167,6 +3352,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"NF":[,[,,"[13]\\d{5}","\\d{5,6}"] ,[,,"(?:1(?:06|17|28|39)|3[012]\\d)\\d{3}","\\d{5,6}"] @@ -3185,6 +3371,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|55|77)","\\d{3}"] +,[,,"NA","NA"] ] ,"NG":[,[,,"[1-69]\\d{5,8}|[78]\\d{5,13}","\\d{5,14}"] ,[,,"[12]\\d{6,7}|9\\d{7}|(?:4[023568]|5[02368]|6[02-469]|7[569]|8[2-9])\\d{6}|(?:4[47]|5[14579]|6[1578]|7[0-357])\\d{5,6}|(?:78|41)\\d{5}","\\d{5,9}"] @@ -3192,7 +3379,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"800\\d{7,11}","\\d{10,14}"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"700\\d{7,11}","\\d{10,14}"] +,[,,"NA","NA"] ,[,,"NA","NA"] ,"NG",234,"009","0",,,"0",,,,[[,"([129])(\\d{3})(\\d{3,4})","$1 $2 $3",["[129]"] ,"0$1","",0] @@ -3209,8 +3396,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"700\\d{7,11}","\\d{10,14}"] ,,[,,"199","\\d{3}"] +,[,,"NA","NA"] ] ,"NI":[,[,,"[128]\\d{7}","\\d{8}"] ,[,,"2\\d{7}","\\d{8}"] @@ -3226,8 +3414,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"118","\\d{3}"] +,[,,"NA","NA"] ] -,"NL":[,[,,"[1-9]\\d{6,9}","\\d{7,10}"] +,"NL":[,[,,"1\\d{4,8}|[2-7]\\d{8}|[89]\\d{6,9}","\\d{5,10}"] ,[,,"(?:1[0135-8]|2[02-69]|3[0-68]|4[0135-9]|[57]\\d|8[478])\\d{7}","\\d{9}"] ,[,,"6[1-58]\\d{7}","\\d{9}"] ,[,,"800\\d{4,7}","\\d{7,10}"] @@ -3239,15 +3428,20 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"([1-5]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"] ,"0$1","",0] -,[,"(6)(\\d{8})","$1 $2",["6"] +,[,"(6)(\\d{8})","$1 $2",["6[0-57-9]"] +,"0$1","",0] +,[,"(66)(\\d{7})","$1 $2",["66"] ,"0$1","",0] +,[,"(14)(\\d{3,4})","$1 $2",["14"] +,"$1","",0] ,[,"([89]0\\d)(\\d{4,7})","$1 $2",["80|9"] ,"0$1","",0] ] -,,[,,"NA","NA"] -,,,[,,"NA","NA"] -,[,,"NA","NA"] +,,[,,"66\\d{7}","\\d{9}"] +,,,[,,"14\\d{3,4}","\\d{5,6}"] +,[,,"140(?:1(?:[035]|[16-8]\\d)|2(?:[0346]|[259]\\d)|3(?:[03568]|[124]\\d)|4(?:[0356]|[17-9]\\d)|5(?:[0358]|[124679]\\d)|7\\d|8[458])","\\d{5,6}"] ,,[,,"112|911","\\d{3}"] +,[,,"NA","NA"] ] ,"NO":[,[,,"0\\d{4}|[2-9]\\d{7}","\\d{5}(?:\\d{3})?"] ,[,,"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}","\\d{8}"] @@ -3266,6 +3460,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}","\\d{5}(?:\\d{3})?"] ,1,[,,"11[023]","\\d{3}"] +,[,,"NA","NA"] ] ,"NP":[,[,,"[1-8]\\d{7}|9(?:[1-69]\\d{6}|7[2-6]\\d{5,7}|8\\d{8})","\\d{6,10}"] ,[,,"(?:1[0124-6]|2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-79])\\d{6}","\\d{6,8}"] @@ -3286,6 +3481,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[0-3]|12)","\\d{3}"] +,[,,"NA","NA"] ] ,"NR":[,[,,"[458]\\d{6}","\\d{7}"] ,[,,"(?:444|888)\\d{4}","\\d{7}"] @@ -3301,6 +3497,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[0-2]","\\d{3}"] +,[,,"NA","NA"] ] ,"NU":[,[,,"[1-5]\\d{3}","\\d{4}"] ,[,,"[34]\\d{3}","\\d{4}"] @@ -3314,6 +3511,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"NZ":[,[,,"6[235-9]\\d{6}|[2-57-9]\\d{7,10}","\\d{7,11}"] ,[,,"(?:3[2-79]|[49][2-689]|6[235-9]|7[2-589])\\d{6}|24099\\d{3}","\\d{7,8}"] @@ -3327,6 +3525,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1","",0] ,[,"(21)(\\d{4})(\\d{3,4})","$1 $2 $3",["21"] ,"0$1","",0] +,[,"(22)(\\d{3})(\\d{4})","$1 $2 $3",["22"] +,"0$1","",0] ,[,"([2589]\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[0247-9]|5|[89]00"] ,"0$1","",0] ,[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[0169]|86"] @@ -3338,6 +3538,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"111","\\d{3}"] +,[,,"NA","NA"] ] ,"OM":[,[,,"(?:2[3-6]|5|9[2-9])\\d{6}|800\\d{5,6}","\\d{7,9}"] ,[,,"2[3-6]\\d{6}","\\d{8}"] @@ -3358,6 +3559,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9999","\\d{4}"] +,[,,"NA","NA"] ] ,"PA":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"] ,[,,"(?:1(?:0[02-579]|19|23|3[03]|4[479]|5[57]|65|7[016-8]|8[58]|9[1-49])|2(?:[0235679]\\d|1[0-7]|4[04-9]|8[028])|3(?:0[0-7]|1[14-7]|2[0-3]|3[03]|4[0457]|5[56]|6[068]|7[078]|80|9[0-79])|4(?:3[013-59]|4\\d|7[0-689])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:09|2[0-267]|[34]0|5[6-9]|7[0-24-7]|8[89]|99)|8(?:[34]\\d|5[0-5]|8[02])|9(?:0[78]|1[0178]|2[0378]|3[379]|40|5[0489]|6[06-9]|7[046-9]|8[36-8]|9[1-9]))\\d{4}","\\d{7}"] @@ -3376,6 +3578,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"PE":[,[,,"[14-9]\\d{7,8}","\\d{6,9}"] ,[,,"(?:1\\d|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\d{6}","\\d{6,8}"] @@ -3398,6 +3601,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:05|1[67])","\\d{3}"] +,[,,"NA","NA"] ] ,"PF":[,[,,"[2-9]\\d{5}","\\d{6}"] ,[,,"(?:36\\d|4(?:[02-9]\\d|1[02-9])|[5689]\\d{2})\\d{3}","\\d{6}"] @@ -3413,6 +3617,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"(?:36|44)\\d{4}","\\d{6}"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}"] +,[,,"NA","NA"] ] ,"PG":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"] ,[,,"(?:3\\d{2}|4[257]\\d|5[34]\\d|6(?:29|4[1-9])|85[02-46-9]|9[78]\\d)\\d{4}","\\d{7}"] @@ -3431,6 +3636,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"000","\\d{3}"] +,[,,"NA","NA"] ] ,"PH":[,[,,"[2-9]\\d{7,9}|1800\\d{7,9}","\\d{7,13}"] ,[,,"(?:2|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578]|8[2-8])\\d{7}","\\d{7,9}"] @@ -3459,6 +3665,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[27]|911","\\d{3}"] +,[,,"NA","NA"] ] ,"PK":[,[,,"1\\d{8}|[2-8]\\d{5,11}|9(?:[013-9]\\d{4,9}|2\\d(?:111\\d{6}|\\d{3,7}))","\\d{6,12}"] ,[,,"(?:21|42)[2-9]\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}|58[126]\\d{7}","\\d{6,10}"] @@ -3489,9 +3696,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:[1-8]|0[468])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}","\\d{11,12}"] ,,[,,"1(?:1(?:22?|5)|[56])","\\d{2,4}"] +,[,,"NA","NA"] ] -,"PL":[,[,,"[1-9]\\d{8}","\\d{9}"] -,[,,"(?:1[2-8]|2[2-59]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])\\d{7}","\\d{9}"] +,"PL":[,[,,"[1-58]\\d{6,8}|9\\d{8}|[67]\\d{5,8}","\\d{6,9}"] +,[,,"(?:1[2-8]|2[2-59]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-6]|8[1-7])\\d{5,7}|77\\d{4,7}|(?:89|9[145])\\d{7}","\\d{6,9}"] ,[,,"(?:5[013]|6[069]|7[289]|88)\\d{7}","\\d{9}"] ,[,,"800\\d{6}","\\d{9}"] ,[,,"70\\d{7}","\\d{9}"] @@ -3500,13 +3708,20 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"39\\d{7}","\\d{9}"] ,"PL",48,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[124]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145]"] ,"","",0] -,[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["39|5[013]|6[069]|7[0289]|8[08]"] +,[,"(\\d{2})(\\d{4,6})","$1 $2",["[124]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-7]"] +,"","",0] +,[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["39|5[013]|6[0469]|7[0289]|8[08]"] +,"","",0] +,[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"] +,"","",0] +,[,"(\\d{3})(\\d{3})","$1 $2",["64"] ,"","",0] ] -,,[,,"NA","NA"] +,,[,,"642\\d{3,6}","\\d{6,9}"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|99[789]","\\d{3}"] +,[,,"NA","NA"] ] ,"PM":[,[,,"[45]\\d{5}","\\d{6}"] ,[,,"41\\d{4}","\\d{6}"] @@ -3522,6 +3737,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}"] +,[,,"NA","NA"] ] ,"PR":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"(?:787|939)[2-9]\\d{6}","\\d{7}(?:\\d{3})?"] @@ -3535,6 +3751,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"787|939",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"PS":[,[,,"[24589]\\d{7,8}|1(?:[78]\\d{8}|[49]\\d{2,3})","\\d{4,10}"] ,[,,"(?:22[234789]|42[45]|82[01458]|92[369])\\d{5}","\\d{7,8}"] @@ -3555,6 +3772,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"PT":[,[,,"[2-46-9]\\d{8}","\\d{9}"] ,[,,"2(?:[12]\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\d{6}","\\d{9}"] @@ -3570,6 +3788,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"70(?:7\\d|8[147])\\d{5}","\\d{9}"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"PW":[,[,,"[2-8]\\d{6}","\\d{7}"] ,[,,"2552255|(?:277|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76))\\d{4}","\\d{7}"] @@ -3585,6 +3804,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"PY":[,[,,"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}","\\d{5,9}"] ,[,,"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}","\\d{5,9}"] @@ -3609,6 +3829,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"[2-9]0\\d{4,7}","\\d{6,9}"] ,,[,,"128|911","\\d{3}"] +,[,,"NA","NA"] ] ,"QA":[,[,,"[2-8]\\d{6,7}","\\d{7,8}"] ,[,,"44\\d{6}","\\d{7,8}"] @@ -3627,6 +3848,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"RE":[,[,,"[268]\\d{8}","\\d{9}"] ,[,,"262\\d{6}","\\d{9}"] @@ -3642,6 +3864,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,"262|6[49]|8",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|[578])","\\d{2,3}"] +,[,,"NA","NA"] ] ,"RO":[,[,,"[237-9]\\d{8}","\\d{9}"] ,[,,"[23][13-6]\\d{7}","\\d{9}"] @@ -3658,8 +3881,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"37\\d{7}","\\d{9}"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"RS":[,[,,"[1-36-9]\\d{4,11}","\\d{5,12}"] ,[,,"[1-3]\\d{6,11}","\\d{5,12}"] @@ -3686,6 +3910,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"7[06]\\d{4,10}","\\d{6,12}"] ,,[,,"112|9[234]","\\d{2,3}"] +,[,,"NA","NA"] ] ,"RU":[,[,,"[3489]\\d{9}","\\d{10}"] ,[,,"(?:3(?:0[12]|4[1-35-79]|5[1-3]|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-7]|7[1-37-9]))\\d{7}","\\d{10}"] @@ -3704,6 +3929,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0[123]|112","\\d{2,3}"] +,[,,"NA","NA"] ] ,"RW":[,[,,"[027-9]\\d{7,8}","\\d{8,9}"] ,[,,"2[258]\\d{7}|06\\d{6}","\\d{8,9}"] @@ -3724,9 +3950,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] -,"SA":[,[,,"[1-9]\\d{7,10}","\\d{7,11}"] -,[,,"(?:1[24-7]|2[24-8]|3[35-8]|4[34-68]|6[2-5]|7[235-7])\\d{6}","\\d{7,8}"] +,"SA":[,[,,"[1-467]\\d{7}|5\\d{8}|(?:8|92)\\d{9}","\\d{7,11}"] +,[,,"(?:[12][24-8]|3[35-8]|4[34-68]|6[2-5]|7[235-7])\\d{6}","\\d{7,8}"] ,[,,"(?:5[013-689]\\d|8111)\\d{6}","\\d{9,10}"] ,[,,"800\\d{7}","\\d{10}"] ,[,,"9200\\d{7}","\\d{11}"] @@ -3748,6 +3975,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[7-9]","\\d{3}"] +,[,,"NA","NA"] ] ,"SB":[,[,,"[1-8]\\d{4,6}","\\d{5,7}"] ,[,,"(?:1[4-79]|[23]\\d|4[01]|5[03]|6[0-37])\\d{3}","\\d{5}"] @@ -3764,24 +3992,26 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] -,"SC":[,[,,"[2-9]\\d{5,6}","\\d{6,7}"] -,[,,"(?:2?(?:55[0-5]|78[013])|4?(?:2(?:0[589]|1[03-9]|[2-9]\\d)|[36]\\d{2})|44\\d{2})\\d{3}","\\d{6,7}"] -,[,,"2?(?:5(?:[0-46-9]\\d|5[6-9])|7(?:[0-79]\\d|8[24-9]))\\d{3}","\\d{6,7}"] +,"SC":[,[,,"[24689]\\d{5,6}","\\d{6,7}"] +,[,,"(?:2(?:55[0-5]|78[013])|4(?:2(?:0[589]|1[03-9]|[2-9]\\d)|[346]\\d{2}))\\d{3}","\\d{7}"] +,[,,"2(?:5(?:[0-46-9]\\d|5[6-9])|7(?:[0-79]\\d|8[24-9]))\\d{3}","\\d{7}"] ,[,,"8000\\d{2}","\\d{6}"] ,[,,"98\\d{4}","\\d{6}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"64\\d{5}","\\d{7}"] -,"SC",248,"0[0-2]",,,,,,"00",,[[,"(\\d{3})(\\d{3})","$1 $2",["[35789]|2[1-4689]|6[0-35-9]"] +,"SC",248,"0[0-2]",,,,,,"00",,[[,"(\\d{3})(\\d{3})","$1 $2",["[89]"] ,"","",0] -,[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["2[57]|4|64"] +,[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]"] ,"","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"SD":[,[,,"[19]\\d{8}","\\d{9}"] ,[,,"1(?:[25]\\d|8[3567])\\d{6}","\\d{9}"] @@ -3797,6 +4027,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"SE":[,[,,"[1-9]\\d{6,9}","\\d{5,10}"] ,[,,"1(?:0[1-8]\\d{6}|[136]\\d{5,7}|(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)\\d{5,6})|2(?:[136]\\d{5,7}|(?:2[0-7]|4[0136-8]|5[0-38]|7[018]|8[01]|9[0-57])\\d{5,6})|3(?:[356]\\d{5,7}|(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])\\d{5,6})|4(?:[0246]\\d{5,7}|(?:1[01-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])\\d{5,6})|5(?:0[0-6]|1[0-5]|2[0-68]|3[0-4]|4\\d|5[0-5]|6[03-5]|7[013]|8[0-79]|9[01])\\d{5,6}|6(?:[03]\\d{5,7}|(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])\\d{5,6})|8\\d{6,8}|9(?:0\\d{5,7}|(?:1[0-68]|2\\d|3[02-59]|4[0-4]|5[0-4]|6[01]|7[0135-8]|8[01])\\d{5,6})","\\d{5,9}"] @@ -3844,6 +4075,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|90000","\\d{3,5}"] +,[,,"NA","NA"] ] ,"SG":[,[,,"[36]\\d{7}|[17-9]\\d{7,10}","\\d{8,11}"] ,[,,"6[1-8]\\d{6}","\\d{8}"] @@ -3865,7 +4097,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"7000\\d{7}","\\d{11}"] -,,[,,"112|9(?:11|9[59])","\\d{3}"] +,,[,,"99[59]","\\d{3}"] +,[,,"NA","NA"] ] ,"SH":[,[,,"[2-9]\\d{3}","\\d{4}"] ,[,,"(?:[2-468]\\d|7[01])\\d{2}","\\d{4}"] @@ -3879,6 +4112,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"SI":[,[,,"[1-7]\\d{6,7}|[89]\\d{4,7}","\\d{5,8}"] ,[,,"(?:1\\d|2[2-8]|3[4-8]|4[24-8]|[57][3-8])\\d{6}","\\d{7,8}"] @@ -3901,6 +4135,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[23]","\\d{3}"] +,[,,"NA","NA"] ] ,"SJ":[,[,,"0\\d{4}|[4789]\\d{7}","\\d{5}(?:\\d{3})?"] ,[,,"79\\d{6}","\\d{8}"] @@ -3914,6 +4149,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}","\\d{5}(?:\\d{3})?"] ,1,[,,"11[023]","\\d{3}"] +,[,,"NA","NA"] ] ,"SK":[,[,,"[2-689]\\d{8}","\\d{9}"] ,[,,"[2-5]\\d{8}","\\d{9}"] @@ -3934,6 +4170,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|5[058])","\\d{3}"] +,[,,"NA","NA"] ] ,"SL":[,[,,"[2-578]\\d{7}","\\d{6,8}"] ,[,,"[235]2[2-4][2-9]\\d{4}","\\d{6,8}"] @@ -3949,6 +4186,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"(?:01|99)9","\\d{3}"] +,[,,"NA","NA"] ] ,"SM":[,[,,"[05-7]\\d{7,9}","\\d{6,10}"] ,[,,"0549(?:8[0157-9]|9\\d)\\d{4}","\\d{6,10}"] @@ -3976,6 +4214,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"11[358]","\\d{3}"] +,[,,"NA","NA"] ] ,"SN":[,[,,"[37]\\d{8}","\\d{9}"] ,[,,"3(?:010|3(?:8[1-9]|9[2-9]))\\d{5}","\\d{9}"] @@ -3991,6 +4230,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"SO":[,[,,"[1-79]\\d{6,8}","\\d{7,9}"] ,[,,"(?:5[57-9]|[1-4]\\d)\\d{5}","\\d{7}"] @@ -4015,10 +4255,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"SR":[,[,,"[2-8]\\d{5,6}","\\d{6,7}"] ,[,,"(?:2[1-3]|3[0-7]|4\\d|5[2-58]|68\\d)\\d{4}","\\d{6,7}"] -,[,,"(?:7[1245]|8[1-9])\\d{5}","\\d{7}"] +,[,,"(?:7[1-5]|8[1-9])\\d{5}","\\d{7}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -4035,6 +4276,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"115","\\d{3}"] +,[,,"NA","NA"] ] ,"ST":[,[,,"[29]\\d{6}","\\d{7}"] ,[,,"22\\d{5}","\\d{7}"] @@ -4050,16 +4292,17 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] -,"SV":[,[,,"[27]\\d{7}|[89]\\d{6}(?:\\d{4})?","\\d{7,8}|\\d{11}"] +,"SV":[,[,,"[267]\\d{7}|[89]\\d{6}(?:\\d{4})?","\\d{7,8}|\\d{11}"] ,[,,"2[1-6]\\d{6}","\\d{8}"] -,[,,"7\\d{7}","\\d{8}"] +,[,,"[67]\\d{7}","\\d{8}"] ,[,,"800\\d{4}(?:\\d{4})?","\\d{7}(?:\\d{4})?"] ,[,,"900\\d{4}(?:\\d{4})?","\\d{7}(?:\\d{4})?"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"SV",503,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[27]"] +,"SV",503,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[267]"] ,"","",0] ,[,"(\\d{3})(\\d{4})","$1 $2",["[89]"] ,"","",0] @@ -4070,10 +4313,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"SX":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"72154[2-8]\\d{4}","\\d{7}(?:\\d{3})?"] -,[,,"7215(?:1[02]|2\\d|5[0346]|8[01678])\\d{4}","\\d{10}"] +,[,,"7215(?:4[2-8]|8[239])\\d{4}","\\d{7}(?:\\d{3})?"] +,[,,"7215(?:1[02]|2\\d|5[03469]|8[01678])\\d{4}","\\d{10}"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"] ,[,,"900[2-9]\\d{6}","\\d{10}"] ,[,,"NA","NA"] @@ -4083,6 +4327,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"721",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"919","\\d{3}"] +,[,,"NA","NA"] ] ,"SY":[,[,,"[1-59]\\d{7,8}","\\d{6,9}"] ,[,,"(?:1(?:1\\d?|4\\d|[2356])|2[1-35]|3(?:[13]\\d|4)|4[13]|5[1-3])\\d{6}","\\d{6,9}"] @@ -4101,6 +4346,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[023]","\\d{3}"] +,[,,"NA","NA"] ] ,"SZ":[,[,,"[027]\\d{7}","\\d{8}"] ,[,,"2(?:2(?:0[07]|[13]7|2[57])|3(?:0[34]|[1278]3|3[23]|[46][34])|(?:40[4-69]|67)|5(?:0[5-7]|1[6-9]|[23][78]|48|5[01]))\\d{4}","\\d{8}"] @@ -4117,6 +4363,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"0800\\d{4}","\\d{8}"] ,[,,"NA","NA"] ,1,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"TC":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"649(?:712|9(?:4\\d|50))\\d{4}","\\d{7}(?:\\d{3})?"] @@ -4130,6 +4377,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"649",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"TD":[,[,,"[2679]\\d{7}","\\d{8}"] ,[,,"22(?:[3789]0|5[0-5]|6[89])\\d{4}","\\d{8}"] @@ -4145,6 +4393,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[78]","\\d{2}"] +,[,,"NA","NA"] ] ,"TG":[,[,,"[29]\\d{7}","\\d{8}"] ,[,,"2(?:2[2-7]|3[23]|44|55|66|77)\\d{5}","\\d{8}"] @@ -4160,8 +4409,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:01|1[78]|7[17])","\\d{3}"] +,[,,"NA","NA"] ] -,"TH":[,[,,"[2-9]\\d{7,8}|1\\d{9}","\\d{8,10}"] +,"TH":[,[,,"[2-9]\\d{7,8}|1\\d{3}(?:\\d{6})?","\\d{4}|\\d{8,10}"] ,[,,"(?:2[1-9]|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}","\\d{8}"] ,[,,"[89]\\d{8}","\\d{9}"] ,[,,"1800\\d{6}","\\d{10}"] @@ -4179,9 +4429,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"$1","",0] ] ,,[,,"NA","NA"] -,,,[,,"NA","NA"] -,[,,"NA","NA"] +,,,[,,"1\\d{3}","\\d{4}"] +,[,,"1\\d{3}","\\d{4}"] ,,[,,"1(?:669|9[19])","\\d{3,4}"] +,[,,"NA","NA"] ] ,"TJ":[,[,,"[3-59]\\d{8}","\\d{3,9}"] ,[,,"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}","\\d{3,9}"] @@ -4204,19 +4455,21 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[1-3]|12)","\\d{3}"] +,[,,"NA","NA"] ] -,"TK":[,[,,"[1-9]\\d{3}","\\d{4}"] -,[,,"[1-9]\\d{3}","\\d{4}"] -,[,,"[1-9]\\d{3}","\\d{4}"] +,"TK":[,[,,"[2-5]\\d{3}","\\d{4}"] +,[,,"[2-4]\\d{3}","\\d{4}"] +,[,,"5\\d{3}","\\d{4}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"TK",690,"00",,,,,,,1,,,[,,"NA","NA"] +,"TK",690,"00",,,,,,,,,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"NA","NA"] +,[,,"NA","NA"] ] ,"TL":[,[,,"[2-47-9]\\d{6}","\\d{7}"] ,[,,"(?:2[1-5]|3[1-9]|4[1-4])\\d{5}","\\d{7}"] @@ -4232,21 +4485,28 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"TM":[,[,,"[1-6]\\d{7}","\\d{8}"] -,[,,"(?:12\\d|243|[3-5]22)\\d{5}","\\d{8}"] -,[,,"6[6-8]\\d{6}","\\d{8}"] +,[,,"(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}","\\d{8}"] +,[,,"6[3-8]\\d{6}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"TM",993,"810","8",,,"8",,"8~10",,[[,"([1-6]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"8 $1","",0] +,"TM",993,"810","8",,,"8",,"8~10",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"] +,"(8 $1)","",0] +,[,"(\\d{2})(\\d{6})","$1 $2",["6"] +,"8 $1","",0] +,[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["13|[2-5]"] +,"(8 $1)","",0] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0[1-3]","\\d{2}"] +,[,,"NA","NA"] ] ,"TN":[,[,,"[2457-9]\\d{7}","\\d{8}"] ,[,,"7\\d{7}","\\d{8}"] @@ -4262,6 +4522,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[078]","\\d{3}"] +,[,,"NA","NA"] ] ,"TO":[,[,,"[02-8]\\d{4,6}","\\d{5,7}"] ,[,,"(?:2\\d|3[1-8]|4[1-4]|[56]0|7[0149]|8[05])\\d{3}","\\d{5}"] @@ -4282,6 +4543,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"9(?:11|22|33|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"TR":[,[,,"[2-589]\\d{9}|444\\d{4}","\\d{7,10}"] ,[,,"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}","\\d{10}"] @@ -4302,6 +4564,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"444\\d{4}","\\d{7}"] ,[,,"444\\d{4}|850\\d{7}","\\d{7,10}"] ,,[,,"1(?:1[02]|55)","\\d{3}"] +,[,,"NA","NA"] ] ,"TT":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"868(?:2(?:01|2[1-5])|6(?:07|1[4-6]|2[1-9]|[3-6]\\d|7[0-79]|9[0-8])|82[12])\\d{4}","\\d{7}(?:\\d{3})?"] @@ -4315,6 +4578,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"868",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[09]","\\d{3}"] +,[,,"NA","NA"] ] ,"TV":[,[,,"[29]\\d{4,5}","\\d{5,6}"] ,[,,"2[02-9]\\d{3}","\\d{5}"] @@ -4328,6 +4592,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"TW":[,[,,"[2-9]\\d{7,8}","\\d{8,9}"] ,[,,"[2-8]\\d{7,8}","\\d{8,9}"] @@ -4346,6 +4611,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[029]","\\d{3}"] +,[,,"NA","NA"] ] ,"TZ":[,[,,"\\d{9}","\\d{7,9}"] ,[,,"2[2-8]\\d{7}","\\d{7,9}"] @@ -4366,6 +4632,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[12]|999","\\d{3}"] +,[,,"NA","NA"] ] ,"UA":[,[,,"[3-689]\\d{8}","\\d{5,9}"] ,[,,"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}","\\d{5,9}"] @@ -4386,18 +4653,19 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:0[123]|12)","\\d{3}"] +,[,,"NA","NA"] ] ,"UG":[,[,,"\\d{9}","\\d{5,9}"] -,[,,"20(?:[014]\\d{2}|2(?:40|[5-9]\\d)|3[23]|4\\d)\\d{4}|[34]\\d{8}","\\d{5,9}"] -,[,,"7(?:0[0-7]|[15789]\\d)\\d{6}","\\d{9}"] +,[,,"20(?:[014]\\d{2}|2(?:40|[5-9]\\d)|3[23]\\d|5[0-4]\\d)\\d{4}|[34]\\d{8}","\\d{5,9}"] +,[,,"7(?:0[0-7]|[15789]\\d|20|[46][0-4])\\d{6}","\\d{9}"] ,[,,"800[123]\\d{5}","\\d{9}"] ,[,,"90[123]\\d{6}","\\d{9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"UG",256,"00[057]","0",,,"0",,,,[[,"(\\d{3})(\\d{6})","$1 $2",["[7-9]|20(?:0|2[5-9])|4(?:6[45]|[7-9])"] +,"UG",256,"00[057]","0",,,"0",,,,[[,"(\\d{3})(\\d{6})","$1 $2",["[7-9]|20(?:[013-5]|2[5-9])|4(?:6[45]|[7-9])"] ,"0$1","",0] -,[,"(\\d{2})(\\d{7})","$1 $2",["204|3|4(?:[1-5]|6[0-36-9])"] +,[,"(\\d{2})(\\d{7})","$1 $2",["3|4(?:[1-5]|6[0-36-9])"] ,"0$1","",0] ,[,"(2024)(\\d{5})","$1 $2",["2024"] ,"0$1","",0] @@ -4406,10 +4674,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"999","\\d{3}"] +,[,,"NA","NA"] ] ,"US":[,[,,"[2-9]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-29]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[059]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?"] -,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-29]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[059]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?"] +,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[0459]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?"] +,[,,"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[06]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|47|5[12]|6[01]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[047]|3[124]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[1678]|4[0179]|5[1246]|7[0-3589]|8[0459]))[2-9]\\d{6}","\\d{7}(?:\\d{3})?"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"] ,[,,"900[2-9]\\d{6}","\\d{10}"] ,[,,"NA","NA"] @@ -4424,6 +4693,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"112|911","\\d{3}"] +,[,,"NA","NA"] ] ,"UY":[,[,,"[2489]\\d{6,7}","\\d{7,8}"] ,[,,"2\\d{7}|4[2-7]\\d{6}","\\d{7,8}"] @@ -4444,9 +4714,10 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"128|911","\\d{3}"] +,[,,"NA","NA"] ] ,"UZ":[,[,,"[679]\\d{8}","\\d{7,9}"] -,[,,"(?:6(?:1(?:22|3[124]|4[1-4]|5[123578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d{2}|7(?:[23]\\d|7[69]|)|9(?:4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[12456]|9[135-8])|12\\d|2(?:22|3[1345789]|4[123579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-4579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}","\\d{7,9}"] +,[,,"(?:6(?:1(?:22|3[124]|4[1-4]|5[123578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d{2}|7(?:[23]\\d|7[69]|)|9(?:4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[12456]|9[135-8])|1[12]\\d|2(?:22|3[1345789]|4[123579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-4579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}","\\d{7,9}"] ,[,,"6(?:1(?:2(?:98|2[01])|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:11\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4])|7\\d{2})|5(?:19[01]|2(?:27|9[26])|30\\d|59\\d|7\\d{2})|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|3[79]\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79])|9[0-3]\\d)|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(2(?:1[1267]|5\\d|3[01]|7[0-4])|5[67]\\d|6(?:2[0-26]|8\\d)|7\\d{2}))\\d{4}|7(?:0\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|33\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078])|9[4-6]\\d)|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0127]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[05629]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07])))\\d{4}|9[0-57-9]\\d{7}","\\d{7,9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -4459,6 +4730,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"0(?:0[123]|[123]|50)","\\d{2,3}"] +,[,,"NA","NA"] ] ,"VA":[,[,,"06\\d{8}","\\d{10}"] ,[,,"06698\\d{5}","\\d{10}"] @@ -4474,6 +4746,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,1,[,,"11[2358]","\\d{3}"] +,[,,"NA","NA"] ] ,"VC":[,[,,"[5789]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"784(?:266|3(?:6[6-9]|7\\d|8[0-24-6])|4(?:38|5[0-36-8]|8\\d|9[01])|555|638|784)\\d{4}","\\d{7}(?:\\d{3})?"] @@ -4487,6 +4760,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"784",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"VE":[,[,,"[24589]\\d{9}","\\d{7,10}"] ,[,,"(?:2(?:12|3[457-9]|[58][1-9]|[467]\\d|9[1-6])|50[01])\\d{7}","\\d{7,10}"] @@ -4502,6 +4776,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"171","\\d{3}"] +,[,,"NA","NA"] ] ,"VG":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"284(?:(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})","\\d{7}(?:\\d{3})?"] @@ -4515,6 +4790,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"284",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"9(?:11|99)","\\d{3}"] +,[,,"NA","NA"] ] ,"VI":[,[,,"[3589]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"340(?:2(?:01|2[067]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?"] @@ -4528,6 +4804,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"340",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"911","\\d{3}"] +,[,,"NA","NA"] ] ,"VN":[,[,,"8\\d{5,8}|[1-79]\\d{7,9}","\\d{7,10}"] ,[,,"(?:2(?:[025-79]|1[0189]|[348][01])|3(?:[0136-9]|[25][01])|[48]\\d|5(?:[01][01]|[2-9])|6(?:[0-46-8]|5[01])|7(?:[02-79]|[18][01]))\\d{7}|69\\d{5,6}|80\\d{5}","\\d{7,10}"] @@ -4558,6 +4835,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"11[345]","\\d{3}"] +,[,,"NA","NA"] ] ,"VU":[,[,,"[2-57-9]\\d{4,6}","\\d{5,7}"] ,[,,"(?:2[2-9]\\d|3(?:[67]\\d|8[0-8])|48[4-9]|88\\d)\\d{2}","\\d{5}"] @@ -4574,6 +4852,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"30\\d{3}|900\\d{4}","\\d{5,7}"] ,,[,,"112","\\d{3}"] +,[,,"NA","NA"] ] ,"WF":[,[,,"[5-7]\\d{5}","\\d{6}"] ,[,,"(?:50|68|72)\\d{4}","\\d{6}"] @@ -4589,6 +4868,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1[578]","\\d{2}"] +,[,,"NA","NA"] ] ,"WS":[,[,,"[2-8]\\d{4,6}","\\d{5,7}"] ,[,,"(?:[2-5]\\d|6[1-9]|84\\d{2})\\d{3}","\\d{5,7}"] @@ -4607,6 +4887,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"99[4-6]","\\d{3}"] +,[,,"NA","NA"] ] ,"YE":[,[,,"[1-7]\\d{6,8}","\\d{6,9}"] ,[,,"(?:1(?:7\\d|[2-68])|2[2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}","\\d{6,8}"] @@ -4625,6 +4906,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"19[1459]","\\d{3}"] +,[,,"NA","NA"] ] ,"YT":[,[,,"[268]\\d{8}","\\d{9}"] ,[,,"2696[0-4]\\d{4}","\\d{9}"] @@ -4638,6 +4920,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"269|63",[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:12|5)","\\d{2,3}"] +,[,,"NA","NA"] ] ,"ZA":[,[,,"[1-5]\\d{8}|(?:7\\d{4,8}|8[1-5789]\\d{3,7})|8[06]\\d{7}","\\d{5,9}"] ,[,,"(?:1[0-8]|2[1-478]|3[1-69]|4\\d|5[1346-8])\\d{7}","\\d{8,9}"] @@ -4660,6 +4943,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"1(?:01(?:11|77)|12)","\\d{3,5}"] +,[,,"NA","NA"] ] ,"ZM":[,[,,"[289]\\d{8}","\\d{9}"] ,[,,"21[1-8]\\d{6}","\\d{9}"] @@ -4678,6 +4962,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"(?:112|99[139])","\\d{3}"] +,[,,"NA","NA"] ] ,"ZW":[,[,,"2(?:[012457-9]\\d{3,8}|6\\d{3,6})|[13-79]\\d{4,8}|86\\d{8}","\\d{3,10}"] ,[,,"(?:1[3-9]|2(?:0[45]|[16]|2[28]|[49]8?|58[23]|7[246]|8[1346-9])|3(?:08?|17?|3[78]|[2456]|7[1569]|8[379])|5(?:[07-9]|1[78]|483|5(?:7?|8))|6(?:0|28|37?|[45][68][78]|98?)|848)\\d{3,6}|(?:2(?:27|5|7[135789]|8[25])|3[39]|5[1-46]|6[126-8])\\d{4,6}|2(?:0|70)\\d{5,6}|(?:4\\d|9[2-8])\\d{4,7}","\\d{3,10}"] @@ -4710,5 +4995,87 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ,,[,,"(?:112|99[3459])","\\d{3}"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{8}","\\d{8}"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"\\d{8}","\\d{8}"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",800,"",,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{8}","\\d{8}"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"\\d{8}","\\d{8}"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",808,"",,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"51(?:00\\d{5}(?:\\d{3})?|10\\d{8})","\\d{9}(?:\\d{3})?"] +,"001",883,"",,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,"","",0] +,[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{11}","\\d{11}"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",888,"",,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"\\d{11}","\\d{11}"] +,,[,,"NA","NA"] +,[,,"NA","NA"] +] +,"001":[,[,,"\\d{9}","\\d{9}"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"\\d{9}","\\d{9}"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,[,,"NA","NA"] +,"001",979,"",,,,,,,1,[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",,"","",0] +] +,,[,,"NA","NA"] +,,,[,,"NA","NA"] +,[,,"NA","NA"] +,,[,,"NA","NA"] +,[,,"NA","NA"] ] }; diff --git a/javascript/i18n/phonenumbers/phonemetadata.pb.js b/javascript/i18n/phonenumbers/phonemetadata.pb.js index ac57f11..aff1fba 100644 --- a/javascript/i18n/phonenumbers/phonemetadata.pb.js +++ b/javascript/i18n/phonenumbers/phonemetadata.pb.js @@ -1122,6 +1122,57 @@ i18n.phonenumbers.PhoneMetadata.prototype.clearEmergency = function() { /** + * Gets the value of the voicemail field. + * @return {i18n.phonenumbers.PhoneNumberDesc} The value. + */ +i18n.phonenumbers.PhoneMetadata.prototype.getVoicemail = function() { + return /** @type {i18n.phonenumbers.PhoneNumberDesc} */ (this.get$Value(28)); +}; + + +/** + * Gets the value of the voicemail field or the default value if not set. + * @return {!i18n.phonenumbers.PhoneNumberDesc} The value. + */ +i18n.phonenumbers.PhoneMetadata.prototype.getVoicemailOrDefault = function() { + return /** @type {!i18n.phonenumbers.PhoneNumberDesc} */ (this.get$ValueOrDefault(28)); +}; + + +/** + * Sets the value of the voicemail field. + * @param {!i18n.phonenumbers.PhoneNumberDesc} value The value. + */ +i18n.phonenumbers.PhoneMetadata.prototype.setVoicemail = function(value) { + this.set$Value(28, value); +}; + + +/** + * @return {boolean} Whether the voicemail field has a value. + */ +i18n.phonenumbers.PhoneMetadata.prototype.hasVoicemail = function() { + return this.has$Value(28); +}; + + +/** + * @return {number} The number of values in the voicemail field. + */ +i18n.phonenumbers.PhoneMetadata.prototype.voicemailCount = function() { + return this.count$Values(28); +}; + + +/** + * Clears the values in the voicemail field. + */ +i18n.phonenumbers.PhoneMetadata.prototype.clearVoicemail = function() { + this.clear$Field(28); +}; + + +/** * Gets the value of the no_international_dialling field. * @return {i18n.phonenumbers.PhoneNumberDesc} The value. */ @@ -2125,6 +2176,12 @@ goog.proto2.Message.set$Metadata(i18n.phonenumbers.PhoneMetadata, { fieldType: goog.proto2.Message.FieldType.MESSAGE, type: i18n.phonenumbers.PhoneNumberDesc }, + 28: { + name: 'voicemail', + required: true, + fieldType: goog.proto2.Message.FieldType.MESSAGE, + type: i18n.phonenumbers.PhoneNumberDesc + }, 24: { name: 'no_international_dialling', required: true, diff --git a/javascript/i18n/phonenumbers/phonenumberutil.js b/javascript/i18n/phonenumbers/phonenumberutil.js index f011105..5b75193 100644 --- a/javascript/i18n/phonenumbers/phonenumberutil.js +++ b/javascript/i18n/phonenumbers/phonenumberutil.js @@ -218,6 +218,31 @@ i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS = { /** + * A map that contains characters that are essential when dialling. That means + * any of the characters in this map must not be removed from a number when + * dialing, otherwise the call will not reach the intended destination. + * + * @const + * @type {!Object.} + * @private + */ +i18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_ = { + '0': '0', + '1': '1', + '2': '2', + '3': '3', + '4': '4', + '5': '5', + '6': '6', + '7': '7', + '8': '8', + '9': '9', + '+': '+', + '*': '*' +}; + + +/** * Only upper-case variants of alpha characters are stored. * * @const @@ -653,7 +678,7 @@ i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ = i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_ + i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ + '|' + '[ \u00A0\\t,]*' + - '(?:ext(?:ensi(?:o\u0301?|\u00F3))?n?|\uFF45\uFF58\uFF54\uFF4E?|' + + '(?:e?xt(?:ensi(?:o\u0301?|\u00F3))?n?|\uFF45?\uFF58\uFF54\uFF4E?|' + '[,x\uFF58#\uFF03~\uFF5E]|int|anexo|\uFF49\uFF4E\uFF54)' + '[:\\.\uFF0E]?[ \u00A0\\t,-]*' + i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ + '#?|' + @@ -734,6 +759,13 @@ i18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_ = /\$CC/; /** + * @const + * @type {string} + */ +i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY = '001'; + + +/** * INTERNATIONAL and NATIONAL formats are consistent with the definition in * ITU-T Recommendation E. 123. For example, the number of the Google * Switzerland office will be written as '+41 44 668 1800' in INTERNATIONAL @@ -784,9 +816,11 @@ i18n.phonenumbers.PhoneNumberType = { // further routed to specific offices, but allow one number to be used for a // company. UAN: 9, + // Used for 'Voice Mail Access Numbers'. + VOICEMAIL: 10, // A phone number is of type UNKNOWN when it does not fit any of the known // patterns for a specific region. - UNKNOWN: 10 + UNKNOWN: -1 }; @@ -996,7 +1030,8 @@ i18n.phonenumbers.PhoneNumberUtil.convertAlphaCharactersInNumber = *
  • subscriber numbers may not be diallable from all devices (notably * mobile devices, which typically requires the full national_number to be * dialled in most regions). - *
  • most non-geographical numbers have no area codes. + *
  • most non-geographical numbers have no area codes, including numbers + * from non-geographical entities. *
  • some geographical numbers have no area codes. * * @@ -1172,11 +1207,28 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isValidRegionCode_ = function(regionCode) { return regionCode != null && + regionCode != + i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY && regionCode.toUpperCase() in i18n.phonenumbers.metadata.countryToMetadata; }; /** + * Helper function to check the country calling code is valid. + * + * @param {number} countryCallingCode the country calling code. + * @return {boolean} true if country calling code code is valid. + * @private + */ +i18n.phonenumbers.PhoneNumberUtil.prototype.hasValidCountryCallingCode_ = + function(countryCallingCode) { + + return countryCallingCode in + i18n.phonenumbers.metadata.countryCodeToRegionCodeMap; +}; + + +/** * Formats a phone number in the specified format using default rules. Note that * this does not promise to produce a phone number that the user can dial from * where they are - although we do format in either 'national' or @@ -1220,17 +1272,20 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.format = // contained in the metadata for US. /** @type {string} */ var regionCode = this.getRegionCodeForCountryCode(countryCallingCode); - if (!this.isValidRegionCode_(regionCode)) { + if (!this.hasValidCountryCallingCode_(countryCallingCode)) { return nationalSignificantNumber; } + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = + this.getMetadataForRegionOrCallingCode_(countryCallingCode, regionCode); /** @type {string} */ var formattedExtension = - this.maybeGetFormattedExtension_(number, regionCode, numberFormat); + this.maybeGetFormattedExtension_(number, metadata, numberFormat); /** @type {string} */ var formattedNationalNumber = this.formatNationalNumber_(nationalSignificantNumber, - regionCode, + metadata, numberFormat); return this.formatNumberByFormat_(countryCallingCode, numberFormat, @@ -1268,11 +1323,14 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatByPattern = // contained in the metadata for US. /** @type {string} */ var regionCode = this.getRegionCodeForCountryCode(countryCallingCode); - if (!this.isValidRegionCode_(regionCode)) { + if (!this.hasValidCountryCallingCode_(countryCallingCode)) { return nationalSignificantNumber; } /** @type {Array.} */ var userDefinedFormatsCopy = []; + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = + this.getMetadataForRegionOrCallingCode_(countryCallingCode, regionCode); /** @type {number} */ var size = userDefinedFormats.length; for (var i = 0; i < size; ++i) { @@ -1289,8 +1347,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatByPattern = /** type {i18n.phonenumbers.NumberFormat} */ var numFormatCopy = numFormat.clone(); /** @type {string} */ - var nationalPrefix = - this.getMetadataForRegion(regionCode).getNationalPrefixOrDefault(); + var nationalPrefix = metadata.getNationalPrefixOrDefault(); if (nationalPrefix.length > 0) { // Replace $NP with national prefix and $FG with the first group ($1). nationalPrefixFormattingRule = nationalPrefixFormattingRule @@ -1314,7 +1371,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatByPattern = /** @type {string} */ var formattedExtension = - this.maybeGetFormattedExtension_(number, regionCode, numberFormat); + this.maybeGetFormattedExtension_(number, metadata, numberFormat); /** @type {string} */ var formattedNationalNumber = this.formatAccordingToFormats_(nationalSignificantNumber, @@ -1353,17 +1410,20 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. // contained in the metadata for US. /** @type {string} */ var regionCode = this.getRegionCodeForCountryCode(countryCallingCode); - if (!this.isValidRegionCode_(regionCode)) { + if (!this.hasValidCountryCallingCode_(countryCallingCode)) { return nationalSignificantNumber; } + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = + this.getMetadataForRegionOrCallingCode_(countryCallingCode, regionCode); /** @type {string} */ var formattedExtension = this.maybeGetFormattedExtension_( - number, regionCode, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); + number, metadata, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); /** @type {string} */ var formattedNationalNumber = this.formatNationalNumber_(nationalSignificantNumber, - regionCode, + metadata, i18n.phonenumbers.PhoneNumberFormat.NATIONAL, carrierCode); return this.formatNumberByFormat_( @@ -1373,6 +1433,21 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. /** + * @param {number} countryCallingCode + * @param {?string} regionCode + * @return {i18n.phonenumbers.PhoneMetadata} + * @private + */ +i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegionOrCallingCode_ = + function(countryCallingCode, regionCode) { + return i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY == + regionCode ? + this.getMetadataForNonGeographicalRegion(countryCallingCode) : + this.getMetadataForRegion(regionCode); +}; + + +/** * Formats a phone number in national format for dialing using the carrier as * specified in the preferred_domestic_carrier_code field of the PhoneNumber * object passed in. If that is missing, use the {@code fallbackCarrierCode} @@ -1419,9 +1494,9 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberForMobileDialing = function(number, regionCallingFrom, withFormatting) { - /** @type {?string} */ - var regionCode = this.getRegionCodeForNumber(number); - if (!this.isValidRegionCode_(regionCode)) { + /** @type {number} */ + var countryCallingCode = number.getCountryCodeOrDefault(); + if (!this.hasValidCountryCallingCode_(countryCallingCode)) { return number.hasRawInput() ? number.getRawInputOrDefault() : ''; } @@ -1434,13 +1509,25 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberForMobileDialing = numberNoExt.clearExtension(); /** @type {i18n.phonenumbers.PhoneNumberType} */ var numberType = this.getNumberType(numberNoExt); - if ((regionCode == 'CO') && (regionCallingFrom == 'CO') && - (numberType == i18n.phonenumbers.PhoneNumberType.FIXED_LINE)) { - formattedNumber = this.formatNationalNumberWithCarrierCode( - numberNoExt, - i18n.phonenumbers.PhoneNumberUtil - .COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX_); - } else if ((regionCode == 'BR') && (regionCallingFrom == 'BR') && + /** @type {string} */ + var regionCode = this.getRegionCodeForCountryCode(countryCallingCode); + if (regionCode == 'CO' && regionCallingFrom == 'CO') { + if (numberType == i18n.phonenumbers.PhoneNumberType.FIXED_LINE) { + formattedNumber = this.formatNationalNumberWithCarrierCode( + numberNoExt, + i18n.phonenumbers.PhoneNumberUtil + .COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX_); + } else { + // E164 doesn't work at all when dialing within Colombia. + formattedNumber = this.format( + numberNoExt, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); + } + } else if (regionCode == 'PE' && regionCallingFrom == 'PE') { + // In Peru, numbers cannot be dialled using E164 format from a mobile phone + // for Movistar. Instead they must be dialled in national format. + formattedNumber = this.format( + numberNoExt, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); + } else if (regionCode == 'BR' && regionCallingFrom == 'BR' && ((numberType == i18n.phonenumbers.PhoneNumberType.FIXED_LINE) || (numberType == i18n.phonenumbers.PhoneNumberType.MOBILE) || (numberType == i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE))) { @@ -1463,7 +1550,8 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberForMobileDialing = } return withFormatting ? formattedNumber : - i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(formattedNumber); + i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(formattedNumber, + i18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_, true); }; @@ -1498,10 +1586,8 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber = /** @type {number} */ var countryCallingCode = number.getCountryCodeOrDefault(); /** @type {string} */ - var regionCode = this.getRegionCodeForCountryCode(countryCallingCode); - /** @type {string} */ var nationalSignificantNumber = this.getNationalSignificantNumber(number); - if (!this.isValidRegionCode_(regionCode)) { + if (!this.hasValidCountryCallingCode_(countryCallingCode)) { return nationalSignificantNumber; } if (countryCallingCode == @@ -1525,17 +1611,12 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber = return this.format(number, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); } - /** @type {string} */ - var formattedNationalNumber = - this.formatNationalNumber_(nationalSignificantNumber, regionCode, - i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); /** @type {i18n.phonenumbers.PhoneMetadata} */ - var metadata = this.getMetadataForRegion(regionCallingFrom); + var metadataForRegionCallingFrom = + this.getMetadataForRegion(regionCallingFrom); /** @type {string} */ - var internationalPrefix = metadata.getInternationalPrefixOrDefault(); - /** @type {string} */ - var formattedExtension = this.maybeGetFormattedExtension_( - number, regionCode, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); + var internationalPrefix = + metadataForRegionCallingFrom.getInternationalPrefixOrDefault(); // For regions that have multiple international prefixes, the international // format of the number is returned, unless there is a preferred international @@ -1546,11 +1627,23 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber = i18n.phonenumbers.PhoneNumberUtil.UNIQUE_INTERNATIONAL_PREFIX_, internationalPrefix)) { internationalPrefixForFormatting = internationalPrefix; - } else if (metadata.hasPreferredInternationalPrefix()) { + } else if (metadataForRegionCallingFrom.hasPreferredInternationalPrefix()) { internationalPrefixForFormatting = - metadata.getPreferredInternationalPrefixOrDefault(); + metadataForRegionCallingFrom.getPreferredInternationalPrefixOrDefault(); } + /** @type {string} */ + var regionCode = this.getRegionCodeForCountryCode(countryCallingCode); + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadataForRegion = + this.getMetadataForRegionOrCallingCode_(countryCallingCode, regionCode); + /** @type {string} */ + var formattedNationalNumber = + this.formatNationalNumber_(nationalSignificantNumber, metadataForRegion, + i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); + /** @type {string} */ + var formattedExtension = this.maybeGetFormattedExtension_(number, + metadataForRegion, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); return internationalPrefixForFormatting.length > 0 ? internationalPrefixForFormatting + ' ' + countryCallingCode + ' ' + formattedNationalNumber + formattedExtension : @@ -1565,9 +1658,12 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber = * is parsed from. The original format is embedded in the country_code_source * field of the PhoneNumber object passed in. If such information is missing, * the number will be formatted into the NATIONAL format by default. When the - * number is an invalid number, the method returns the raw input when it is - * available. + * number contains a leading zero and this is unexpected for this country, or we + * don't have a formatting pattern for the number, the method returns the raw + * input when it is available. * + * Note this method guarantees no digit will be inserted, removed or modified as + * a result of formatting. * @param {i18n.phonenumbers.PhoneNumber} number the phone number that needs to * be formatted in its original number format. * @param {string} regionCallingFrom the region whose IDD needs to be prefixed @@ -1577,27 +1673,187 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber = i18n.phonenumbers.PhoneNumberUtil.prototype.formatInOriginalFormat = function(number, regionCallingFrom) { - if (number.hasRawInput() && !this.isValidNumber(number)) { + if (number.hasRawInput() && + (this.hasUnexpectedItalianLeadingZero_(number) || + !this.hasFormattingPatternForNumber_(number))) { + // We check if we have the formatting pattern because without that, we might + // format the number as a group without national prefix. return number.getRawInputOrDefault(); } if (!number.hasCountryCodeSource()) { return this.format(number, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); } + /** @type {string} */ + var formattedNumber; switch (number.getCountryCodeSource()) { case i18n.phonenumbers.PhoneNumber.CountryCodeSource .FROM_NUMBER_WITH_PLUS_SIGN: - return this.format(number, + formattedNumber = this.format(number, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); + break; case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_IDD: - return this.formatOutOfCountryCallingNumber(number, regionCallingFrom); + formattedNumber = + this.formatOutOfCountryCallingNumber(number, regionCallingFrom); + break; case i18n.phonenumbers.PhoneNumber.CountryCodeSource .FROM_NUMBER_WITHOUT_PLUS_SIGN: - return this.format(number, + formattedNumber = this.format(number, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL).substring(1); + break; case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY: + // Fall-through to default case. default: - return this.format(number, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); + /** @type {string} */ + var regionCode = + this.getRegionCodeForCountryCode(number.getCountryCodeOrDefault()); + // We strip non-digits from the NDD here, and from the raw input later, + // so that we can compare them easily. + /** @type {?string} */ + var nationalPrefix = this.getNddPrefixForRegion(regionCode, true); + /** @type {string} */ + var nationalFormat = + this.format(number, i18n.phonenumbers.PhoneNumberFormat.NATIONAL); + if (nationalPrefix == null || nationalPrefix.length == 0) { + // If the region doesn't have a national prefix at all, we can safely + // return the national format without worrying about a national prefix + // being added. + formattedNumber = nationalFormat; + break; + } + // Otherwise, we check if the original number was entered with a national + // prefix. + if (this.rawInputContainsNationalPrefix_( + number.getRawInputOrDefault(), nationalPrefix, regionCode)) { + // If so, we can safely return the national format. + formattedNumber = nationalFormat; + break; + } + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = this.getMetadataForRegion(regionCode); + /** @type {string} */ + var nationalNumber = this.getNationalSignificantNumber(number); + /** @type {i18n.phonenumbers.NumberFormat} */ + var formatRule = this.chooseFormattingPatternForNumber_( + metadata.numberFormatArray(), nationalNumber); + // When the format we apply to this number doesn't contain national + // prefix, we can just return the national format. + // TODO: Refactor the code below with the code in + // isNationalPrefixPresentIfRequired. + /** @type {string} */ + var candidateNationalPrefixRule = + formatRule.getNationalPrefixFormattingRuleOrDefault(); + // We assume that the first-group symbol will never be _before_ the + // national prefix. + /** @type {number} */ + var indexOfFirstGroup = candidateNationalPrefixRule.indexOf('$1'); + if (indexOfFirstGroup <= 0) { + formattedNumber = nationalFormat; + break; + } + candidateNationalPrefixRule = + candidateNationalPrefixRule.substring(0, indexOfFirstGroup); + candidateNationalPrefixRule = i18n.phonenumbers.PhoneNumberUtil + .normalizeDigitsOnly(candidateNationalPrefixRule); + if (candidateNationalPrefixRule.length == 0) { + // National prefix not used when formatting this number. + formattedNumber = nationalFormat; + break; + } + // Otherwise, we need to remove the national prefix from our output. + /** @type {i18n.phonenumbers.NumberFormat} */ + var numFormatCopy = formatRule.clone(); + numFormatCopy.clearNationalPrefixFormattingRule(); + formattedNumber = this.formatByPattern(number, + i18n.phonenumbers.PhoneNumberFormat.NATIONAL, [numFormatCopy]); + break; + } + /** @type {string} */ + var rawInput = number.getRawInputOrDefault(); + // If no digit is inserted/removed/modified as a result of our formatting, we + // return the formatted phone number; otherwise we return the raw input the + // user entered. + return (formattedNumber != null && + i18n.phonenumbers.PhoneNumberUtil + .normalizeDigitsOnly(formattedNumber) == + i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(rawInput)) ? + formattedNumber : + rawInput; +}; + + +/** + * Check if rawInput, which is assumed to be in the national format, has a + * national prefix. The national prefix is assumed to be in digits-only form. + * @param {string} rawInput + * @param {string} nationalPrefix + * @param {string} regionCode + * @return {boolean} + * @private + */ +i18n.phonenumbers.PhoneNumberUtil.prototype.rawInputContainsNationalPrefix_ = + function(rawInput, nationalPrefix, regionCode) { + + /** @type {string} */ + var normalizedNationalNumber = + i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(rawInput); + if (goog.string.startsWith(normalizedNationalNumber, nationalPrefix)) { + try { + // Some Japanese numbers (e.g. 00777123) might be mistaken to contain the + // national prefix when written without it (e.g. 0777123) if we just do + // prefix matching. To tackle that, we check the validity of the number if + // the assumed national prefix is removed (777123 won't be valid in + // Japan). + return this.isValidNumber( + this.parse(normalizedNationalNumber.substring(nationalPrefix.length), + regionCode)); + } catch (e) { + return false; + } } + return false; +}; + + +/** + * Returns true if a number is from a region whose national significant number + * couldn't contain a leading zero, but has the italian_leading_zero field set + * to true. + * @param {i18n.phonenumbers.PhoneNumber} number + * @return {boolean} + * @private + */ +i18n.phonenumbers.PhoneNumberUtil.prototype.hasUnexpectedItalianLeadingZero_ = + function(number) { + + return number.hasItalianLeadingZero() && + !this.isLeadingZeroPossible(number.getCountryCodeOrDefault()); +}; + + +/** + * @param {i18n.phonenumbers.PhoneNumber} number + * @return {boolean} + * @private + */ +i18n.phonenumbers.PhoneNumberUtil.prototype.hasFormattingPatternForNumber_ = + function(number) { + + /** @type {number} */ + var countryCallingCode = number.getCountryCodeOrDefault(); + /** @type {string} */ + var phoneNumberRegion = this.getRegionCodeForCountryCode(countryCallingCode); + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = this.getMetadataForRegionOrCallingCode_( + countryCallingCode, phoneNumberRegion); + if (metadata == null) { + return false; + } + /** @type {string} */ + var nationalNumber = this.getNationalSignificantNumber(number); + /** @type {i18n.phonenumbers.NumberFormat} */ + var formatRule = this.chooseFormattingPatternForNumber_( + metadata.numberFormatArray(), nationalNumber); + return formatRule != null; }; @@ -1638,9 +1894,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. } /** @type {number} */ var countryCode = number.getCountryCodeOrDefault(); - /** @type {string} */ - var regionCode = this.getRegionCodeForCountryCode(countryCode); - if (!this.isValidRegionCode_(regionCode)) { + if (!this.hasValidCountryCallingCode_(countryCode)) { return rawInput; } // Strip any prefix such as country calling code, IDD, that was present. We do @@ -1666,7 +1920,8 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. } } /** @type {i18n.phonenumbers.PhoneMetadata} */ - var metadata = this.getMetadataForRegion(regionCallingFrom); + var metadataForRegionCallingFrom = + this.getMetadataForRegion(regionCallingFrom); if (countryCode == i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_) { if (this.isNANPACountry(regionCallingFrom)) { return countryCode + ' ' + rawInput; @@ -1676,9 +1931,11 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. // to match against. /** @type {Array.} */ var availableFormats = []; - for (var i = 0; i < metadata.numberFormatArray().length; ++i) { + for (var i = 0; i < metadataForRegionCallingFrom.numberFormatArray().length; + ++i) { /** @type {i18n.phonenumbers.NumberFormat} */ - var newFormat = metadata.numberFormatArray()[i].clone(); + var newFormat = + metadataForRegionCallingFrom.numberFormatArray()[i].clone(); // The first group is the first group of digits that the user determined. newFormat.setPattern('(\\d+)(.*)'); // Here we just concatenate them back together after the national prefix @@ -1697,25 +1954,41 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. i18n.phonenumbers.PhoneNumberFormat.NATIONAL); } /** @type {string} */ - var internationalPrefix = metadata.getInternationalPrefixOrDefault(); - // For countries that have multiple international prefixes, the international - // format of the number is returned, unless there is a preferred international - // prefix. + var internationalPrefixForFormatting = ''; + // If an unsupported region-calling-from is entered, or a country with + // multiple international prefixes, the international format of the number is + // returned, unless there is a preferred international prefix. + if (metadataForRegionCallingFrom != null) { + /** @type {string} */ + var internationalPrefix = + metadataForRegionCallingFrom.getInternationalPrefixOrDefault(); + internationalPrefixForFormatting = + i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_( + i18n.phonenumbers.PhoneNumberUtil.UNIQUE_INTERNATIONAL_PREFIX_, + internationalPrefix) ? + internationalPrefix : + metadataForRegionCallingFrom.getPreferredInternationalPrefixOrDefault(); + } /** @type {string} */ - var internationalPrefixForFormatting = - i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_( - i18n.phonenumbers.PhoneNumberUtil.UNIQUE_INTERNATIONAL_PREFIX_, - internationalPrefix) ? - internationalPrefix : metadata.getPreferredInternationalPrefixOrDefault(); + var regionCode = this.getRegionCodeForCountryCode(countryCode); + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadataForRegion = + this.getMetadataForRegionOrCallingCode_(countryCode, regionCode); /** @type {string} */ var formattedExtension = this.maybeGetFormattedExtension_( - number, regionCode, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); - return internationalPrefixForFormatting.length > 0 ? - internationalPrefixForFormatting + ' ' + countryCode + ' ' + - rawInput + formattedExtension : - this.formatNumberByFormat_( - countryCode, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL, - rawInput, formattedExtension); + number, metadataForRegion, + i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL); + if (internationalPrefixForFormatting.length > 0) { + return internationalPrefixForFormatting + ' ' + countryCode + ' ' + + rawInput + formattedExtension; + } else { + // Invalid region entered as country-calling-from (so no metadata was found + // for it) or the region chosen has multiple international dialling + // prefixes. + return this.formatNumberByFormat_( + countryCode, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL, + rawInput, formattedExtension); + } }; @@ -1782,7 +2055,8 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberByFormat_ = * be inserted into the formatted string to replace $CC. * * @param {string} number a string of characters representing a phone number. - * @param {string} regionCode the ISO 3166-1 two-letter region code. + * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the + * region that we think this number is from. * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the * phone number should be formatted into. * @param {string=} opt_carrierCode @@ -1790,10 +2064,8 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberByFormat_ = * @private */ i18n.phonenumbers.PhoneNumberUtil.prototype.formatNationalNumber_ = - function(number, regionCode, numberFormat, opt_carrierCode) { + function(number, metadata, numberFormat, opt_carrierCode) { - /** @type {i18n.phonenumbers.PhoneMetadata} */ - var metadata = this.getMetadataForRegion(regionCode); /** @type {Array.} */ var intlNumberFormats = metadata.intlNumberFormatArray(); // When the intlNumberFormats exists, we use that to format national number @@ -1919,7 +2191,9 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.formatAccordingToFormats_ = * @param {string} regionCode the region for which an example number is needed. * @return {i18n.phonenumbers.PhoneNumber} a valid fixed-line number for the * specified region. Returns null when the metadata does not contain such - * information. + * information, or the region 001 is passed in. For 001 (representing non- + * geographical numbers), call {@link #getExampleNumberForNonGeoEntity} + * instead. */ i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumber = function(regionCode) { @@ -1937,7 +2211,9 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumber = * needed. * @return {i18n.phonenumbers.PhoneNumber} a valid number for the specified * region and type. Returns null when the metadata does not contain such - * information or if an invalid region was entered. + * information or if an invalid region or region 001 was entered. + * For 001 (representing non-geographical numbers), call + * {@link #getExampleNumberForNonGeoEntity} instead. */ i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForType = function(regionCode, type) { @@ -1960,19 +2236,51 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForType = /** + * Gets a valid number for the specified country calling code for a + * non-geographical entity. + * + * @param {number} countryCallingCode the country calling code for a + * non-geographical entity. + * @return {i18n.phonenumbers.PhoneNumber} a valid number for the + * non-geographical entity. Returns null when the metadata does not contain + * such information, or the country calling code passed in does not belong + * to a non-geographical entity. + */ +i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForNonGeoEntity = + function(countryCallingCode) { + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = + this.getMetadataForNonGeographicalRegion(countryCallingCode); + if (metadata != null) { + /** @type {i18n.phonenumbers.PhoneNumberDesc} */ + var desc = metadata.getGeneralDesc(); + try { + if (desc.hasExampleNumber()) { + return this.parse('+' + countryCallingCode + desc.getExampleNumber(), + 'ZZ'); + } + } catch (e) { + } + } + return null; +}; + + +/** * Gets the formatted extension of a phone number, if the phone number had an * extension specified. If not, it returns an empty string. * * @param {i18n.phonenumbers.PhoneNumber} number the PhoneNumber that might have * an extension. - * @param {string} regionCode the ISO 3166-1 two-letter region code. + * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the + * region that we think this number is from. * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the * phone number should be formatted into. * @return {string} the formatted extension if any. * @private */ i18n.phonenumbers.PhoneNumberUtil.prototype.maybeGetFormattedExtension_ = - function(number, regionCode, numberFormat) { + function(number, metadata, numberFormat) { if (!number.hasExtension() || number.getExtension().length == 0) { return ''; @@ -1981,7 +2289,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.maybeGetFormattedExtension_ = return i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_ + number.getExtension(); } - return this.formatExtension_(number.getExtensionOrDefault(), regionCode); + return this.formatExtension_(number.getExtensionOrDefault(), metadata); } }; @@ -1992,15 +2300,14 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.maybeGetFormattedExtension_ = * unless overridden by a preferred extension prefix for this region. * * @param {string} extensionDigits the extension digits. - * @param {string} regionCode the ISO 3166-1 two-letter region code. + * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the + * region that we think this number is from. * @return {string} the formatted extension. * @private */ i18n.phonenumbers.PhoneNumberUtil.prototype.formatExtension_ = - function(extensionDigits, regionCode) { + function(extensionDigits, metadata) { - /** @type {i18n.phonenumbers.PhoneMetadata} */ - var metadata = this.getMetadataForRegion(regionCode); if (metadata.hasPreferredExtnPrefix()) { return metadata.getPreferredExtnPrefix() + extensionDigits; } else { @@ -2039,6 +2346,8 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getNumberDescByType_ = return metadata.getPager(); case i18n.phonenumbers.PhoneNumberType.UAN: return metadata.getUan(); + case i18n.phonenumbers.PhoneNumberType.VOICEMAIL: + return metadata.getVoicemail(); default: return metadata.getGeneralDesc(); } @@ -2057,13 +2366,17 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getNumberType = /** @type {?string} */ var regionCode = this.getRegionCodeForNumber(number); - if (!this.isValidRegionCode_(regionCode)) { + if (!this.isValidRegionCode_(regionCode) && + i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY != + regionCode) { return i18n.phonenumbers.PhoneNumberType.UNKNOWN; } /** @type {string} */ var nationalSignificantNumber = this.getNationalSignificantNumber(number); - return this.getNumberTypeHelper_(nationalSignificantNumber, - this.getMetadataForRegion(regionCode)); + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = this.getMetadataForRegionOrCallingCode_( + number.getCountryCodeOrDefault(), regionCode); + return this.getNumberTypeHelper_(nationalSignificantNumber, metadata); }; @@ -2105,6 +2418,9 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getNumberTypeHelper_ = if (this.isNumberMatchingDesc_(nationalNumber, metadata.getUan())) { return i18n.phonenumbers.PhoneNumberType.UAN; } + if (this.isNumberMatchingDesc_(nationalNumber, metadata.getVoicemail())) { + return i18n.phonenumbers.PhoneNumberType.VOICEMAIL; + } /** @type {boolean} */ var isFixedLine = this.isNumberMatchingDesc_(nationalNumber, metadata @@ -2160,6 +2476,18 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegion = /** + * @param {number} countryCallingCode + * @return {i18n.phonenumbers.PhoneMetadata} + */ +i18n.phonenumbers.PhoneNumberUtil.prototype. + getMetadataForNonGeographicalRegion = function(countryCallingCode) { + + return this.getMetadataForRegion( + this.getRegionCodeForCountryCode(countryCallingCode)); +}; + + +/** * @param {string} nationalNumber * @param {i18n.phonenumbers.PhoneNumberDesc} numberDesc * @return {boolean} @@ -2188,8 +2516,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatchingDesc_ = i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumber = function(number) { /** @type {?string} */ var regionCode = this.getRegionCodeForNumber(number); - return this.isValidRegionCode_(regionCode) && - this.isValidNumberForRegion(number, /** @type {string} */ (regionCode)); + return this.isValidNumberForRegion(number, regionCode); }; @@ -2204,7 +2531,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumber = function(number) { * * @param {i18n.phonenumbers.PhoneNumber} number the phone number that we want * to validate. - * @param {string} regionCode the region that we want to validate the phone + * @param {?string} regionCode the region that we want to validate the phone * number for. * @return {boolean} a boolean that indicates whether the number is of a valid * pattern. @@ -2212,12 +2539,17 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumber = function(number) { i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumberForRegion = function(number, regionCode) { - if (number.getCountryCodeOrDefault() != - this.getCountryCodeForRegion(regionCode)) { + /** @type {number} */ + var countryCode = number.getCountryCodeOrDefault(); + if (countryCode == 0 || + (i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY != + regionCode && + countryCode != this.getCountryCodeForRegion(regionCode))) { return false; } /** @type {i18n.phonenumbers.PhoneMetadata} */ - var metadata = this.getMetadataForRegion(regionCode); + var metadata = + this.getMetadataForRegionOrCallingCode_(countryCode, regionCode); /** @type {i18n.phonenumbers.PhoneNumberDesc} */ var generalNumDesc = metadata.getGeneralDesc(); /** @type {string} */ @@ -2525,14 +2857,17 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberWithReason = // work if the number is possible but not valid. This would need to be // revisited if the possible number pattern ever differed between various // regions within those plans. - /** @type {string} */ - var regionCode = this.getRegionCodeForCountryCode(countryCode); - if (!this.isValidRegionCode_(regionCode)) { + if (!this.hasValidCountryCallingCode_(countryCode)) { return i18n.phonenumbers.PhoneNumberUtil.ValidationResult .INVALID_COUNTRY_CODE; } + /** @type {string} */ + var regionCode = this.getRegionCodeForCountryCode(countryCode); + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = + this.getMetadataForRegionOrCallingCode_(countryCode, regionCode); /** @type {i18n.phonenumbers.PhoneNumberDesc} */ - var generalNumDesc = this.getMetadataForRegion(regionCode).getGeneralDesc(); + var generalNumDesc = metadata.getGeneralDesc(); // Handling case of numbers with no metadata. if (!generalNumDesc.hasNationalNumberPattern()) { /** @type {number} */ @@ -3164,7 +3499,8 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.parseHelper_ = /** @type {string} */ var phoneNumberRegion = this.getRegionCodeForCountryCode(countryCode); if (phoneNumberRegion != defaultRegion) { - regionMetadata = this.getMetadataForRegion(phoneNumberRegion); + regionMetadata = this.getMetadataForRegionOrCallingCode_( + countryCode, phoneNumberRegion); } } else { // If no extracted country calling code, use the region supplied instead. @@ -3388,14 +3724,14 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isNationalNumberSuffixOfTheOther_ = /** - * Returns true if the number can only be dialled from within the region. If - * unknown, or the number can be dialled from outside the region as well, - * returns false. Does not check the number is a valid number. + * Returns true if the number can be dialled from outside the region, or + * unknown. If the number can only be dialled from within the region, returns + * false. Does not check the number is a valid number. * TODO: Make this method public when we have enough metadata to make it * worthwhile. Currently visible for testing purposes only. * * @param {i18n.phonenumbers.PhoneNumber} number the phone-number for which we - * want to know whether it is only diallable from within the region. + * want to know whether it is diallable from outside the region. * @return {boolean} true if the number can only be dialled from within the * country. */ @@ -3403,13 +3739,15 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.canBeInternationallyDialled = function(number) { /** @type {?string} */ var regionCode = this.getRegionCodeForNumber(number); - /** @type {string} */ - var nationalSignificantNumber = this.getNationalSignificantNumber(number); if (!this.isValidRegionCode_(regionCode)) { + // Note numbers belonging to non-geographical entities (e.g. +800 numbers) + // are always internationally diallable, and will be caught here. return true; } /** @type {i18n.phonenumbers.PhoneMetadata} */ var metadata = this.getMetadataForRegion(regionCode); + /** @type {string} */ + var nationalSignificantNumber = this.getNationalSignificantNumber(number); return !this.isNumberMatchingDesc_(nationalSignificantNumber, metadata.getNoInternationalDialling()); }; diff --git a/javascript/i18n/phonenumbers/phonenumberutil_test.js b/javascript/i18n/phonenumbers/phonenumberutil_test.js index 11d141e..113264e 100644 --- a/javascript/i18n/phonenumbers/phonenumberutil_test.js +++ b/javascript/i18n/phonenumbers/phonenumberutil_test.js @@ -109,6 +109,12 @@ IT_NUMBER.setNationalNumber(236618300); IT_NUMBER.setItalianLeadingZero(true); +/** @type {i18n.phonenumbers.PhoneNumber} */ +var JP_STAR_NUMBER = new i18n.phonenumbers.PhoneNumber(); +JP_STAR_NUMBER.setCountryCode(81); +JP_STAR_NUMBER.setNationalNumber(2345); + + // Numbers to test the formatting rules from Mexico. /** @type {i18n.phonenumbers.PhoneNumber} */ var MX_MOBILE1 = new i18n.phonenumbers.PhoneNumber(); @@ -196,6 +202,18 @@ US_SPOOF_WITH_RAW_INPUT.setCountryCode(1); US_SPOOF_WITH_RAW_INPUT.setNationalNumber(0); US_SPOOF_WITH_RAW_INPUT.setRawInput('000-000-0000'); + +/** @type {i18n.phonenumbers.PhoneNumber} */ +var INTERNATIONAL_TOLL_FREE = new i18n.phonenumbers.PhoneNumber(); +INTERNATIONAL_TOLL_FREE.setCountryCode(800); +INTERNATIONAL_TOLL_FREE.setNationalNumber(12345678); + + +/** @type {i18n.phonenumbers.PhoneNumber} */ +var INTERNATIONAL_TOLL_FREE_TOO_LONG = new i18n.phonenumbers.PhoneNumber(); +INTERNATIONAL_TOLL_FREE_TOO_LONG.setCountryCode(800); +INTERNATIONAL_TOLL_FREE_TOO_LONG.setNationalNumber(1234567890); + var RegionCode = i18n.phonenumbers.RegionCode; function testGetInstanceLoadUSMetadata() { @@ -262,13 +280,26 @@ function testGetInstanceLoadARMetadata() { assertEquals('$1 $2 $3 $4', metadata.getIntlNumberFormat(3).getFormat()); } +function testGetInstanceLoadInternationalTollFreeMetadata() { + /** @type {i18n.phonenumbers.PhoneMetadata} */ + var metadata = phoneUtil.getMetadataForNonGeographicalRegion(800); + assertEquals('001', metadata.getId()); + assertEquals(800, metadata.getCountryCode()); + assertEquals('$1 $2', metadata.getNumberFormat(0).getFormat()); + assertEquals('(\\d{4})(\\d{4})', metadata.getNumberFormat(0).getPattern()); + assertEquals('12345678', metadata.getGeneralDesc().getExampleNumber()); + assertEquals('12345678', metadata.getTollFree().getExampleNumber()); +} + function testIsLeadingZeroPossible() { // Italy assertTrue(phoneUtil.isLeadingZeroPossible(39)); // USA assertFalse(phoneUtil.isLeadingZeroPossible(1)); - // Not in metadata file, just default to false. + // International toll free numbers assertFalse(phoneUtil.isLeadingZeroPossible(800)); + // Not in metadata file, just default to false. + assertFalse(phoneUtil.isLeadingZeroPossible(888)); } function testGetLengthOfGeographicalAreaCode() { @@ -296,6 +327,10 @@ function testGetLengthOfGeographicalAreaCode() { // An invalid US number (1 digit shorter), which has no area code. assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(US_SHORT_BY_ONE_NUMBER)); + + // An international toll free number, which has no area code. + assertEquals(0, + phoneUtil.getLengthOfGeographicalAreaCode(INTERNATIONAL_TOLL_FREE)); } function testGetLengthOfNationalDestinationCode() { @@ -334,6 +369,10 @@ function testGetLengthOfNationalDestinationCode() { number.setCountryCode(123); number.setNationalNumber(6502530000); assertEquals(0, phoneUtil.getLengthOfNationalDestinationCode(number)); + + // An international toll free number, which has NDC '1234'. + assertEquals(4, + phoneUtil.getLengthOfNationalDestinationCode(INTERNATIONAL_TOLL_FREE)); } function testGetNationalSignificantNumber() { @@ -347,6 +386,9 @@ function testGetNationalSignificantNumber() { // An Italian fixed line number. assertEquals('0236618300', phoneUtil.getNationalSignificantNumber(IT_NUMBER)); + + assertEquals('12345678', + phoneUtil.getNationalSignificantNumber(INTERNATIONAL_TOLL_FREE)); } function testGetExampleNumber() { @@ -364,6 +406,14 @@ function testGetExampleNumber() { assertNotNull(phoneUtil.getExampleNumberForType(RegionCode.US, PNT.MOBILE)); // CS is an invalid region, so we have no data for it. assertNull(phoneUtil.getExampleNumberForType(RegionCode.CS, PNT.MOBILE)); + // RegionCode 001 is reserved for supporting non-geographical country calling + // code. We don't support getting an example number for it with this method. + assertNull(phoneUtil.getExampleNumber(RegionCode.UN001)); +} + +function testGetExampleNumberForNonGeoEntity() { + assertTrue(INTERNATIONAL_TOLL_FREE.equals( + phoneUtil.getExampleNumberForNonGeoEntity(800))); } function testConvertAlphaCharactersInNumber() { @@ -650,6 +700,9 @@ function testFormatOutOfCountryCallingNumber() { assertEquals('011 54 9 11 8765 4321', phoneUtil.formatOutOfCountryCallingNumber(AR_MOBILE, RegionCode.US)); + assertEquals('011 800 1234 5678', + phoneUtil.formatOutOfCountryCallingNumber(INTERNATIONAL_TOLL_FREE, + RegionCode.US)); /** @type {i18n.phonenumbers.PhoneNumber} */ var arNumberWithExtn = AR_MOBILE.clone(); @@ -669,7 +722,11 @@ function testFormatOutOfCountryWithInvalidRegion() { // AQ/Antarctica isn't a valid region code for phone number formatting, // so this falls back to intl formatting. assertEquals('+1 650 253 0000', - phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, 'AQ')); + phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.AQ)); + // For region code 001, the out-of-country format always turns into the + // international format. + assertEquals('+1 650 253 0000', + phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.UN001)); } function testFormatOutOfCountryWithPreferredIntlPrefix() { @@ -755,6 +812,10 @@ function testFormatOutOfCountryKeepingAlphaChars() { assertEquals('+61 1-800-SIX-FLAG', phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.SG)); + // Testing the case of calling from a non-supported region. + assertEquals('+61 1-800-SIX-FLAG', + phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, + RegionCode.AQ)); // Testing the case with an invalid country calling code. alphaNumericNumber.setCountryCode(0); @@ -773,6 +834,15 @@ function testFormatOutOfCountryKeepingAlphaChars() { assertEquals('00 1 180-SIX', phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.DE)); + + // Testing the case of calling from a non-supported region. + alphaNumericNumber.setCountryCode(1); + alphaNumericNumber.setNationalNumber(80749); + alphaNumericNumber.setRawInput('180-SIX'); + // No country-code stripping can be done since the number is invalid. + assertEquals('+1 180-SIX', + phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, + RegionCode.AQ)); } function testFormatWithCarrierCode() { @@ -859,6 +929,30 @@ function testFormatNumberForMobileDialing() { assertEquals('+16502530000', phoneUtil.formatNumberForMobileDialing(usNumberWithExtn, RegionCode.US, false)); + + // An invalid US number, which is one digit too long. + assertEquals('+165025300001', + phoneUtil.formatNumberForMobileDialing(US_LONG_NUMBER, + RegionCode.US, false)); + assertEquals('+1 65025300001', + phoneUtil.formatNumberForMobileDialing(US_LONG_NUMBER, + RegionCode.US, true)); + + // Star numbers. In real life they appear in Israel, but we have them in JP + // in our test metadata. + assertEquals('*2345', + phoneUtil.formatNumberForMobileDialing(JP_STAR_NUMBER, + RegionCode.JP, false)); + assertEquals('*2345', + phoneUtil.formatNumberForMobileDialing(JP_STAR_NUMBER, + RegionCode.JP, true)); + + assertEquals('+80012345678', + phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, + RegionCode.JP, false)); + assertEquals('+800 1234 5678', + phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, + RegionCode.JP, true)); } function testFormatByPattern() { @@ -932,6 +1026,8 @@ function testFormatE164Number() { var PNF = i18n.phonenumbers.PhoneNumberFormat; assertEquals('+16502530000', phoneUtil.format(US_NUMBER, PNF.E164)); assertEquals('+4930123456', phoneUtil.format(DE_NUMBER, PNF.E164)); + assertEquals('+80012345678', + phoneUtil.format(INTERNATIONAL_TOLL_FREE, PNF.E164)); } function testFormatNumberWithExtension() { @@ -953,46 +1049,163 @@ function testFormatNumberWithExtension() { phoneUtil.format(usNumberWithExtension, PNF.NATIONAL)); } -function testFormatUsingOriginalNumberFormat() { +function testFormatInOriginalFormat() { /** @type {i18n.phonenumbers.PhoneNumber} */ var number1 = phoneUtil.parseAndKeepRawInput('+442087654321', RegionCode.GB); assertEquals('+44 20 8765 4321', - phoneUtil.formatInOriginalFormat(number1, RegionCode.GB)); + phoneUtil.formatInOriginalFormat(number1, RegionCode.GB)); /** @type {i18n.phonenumbers.PhoneNumber} */ var number2 = phoneUtil.parseAndKeepRawInput('02087654321', RegionCode.GB); assertEquals('(020) 8765 4321', - phoneUtil.formatInOriginalFormat(number2, RegionCode.GB)); + phoneUtil.formatInOriginalFormat(number2, RegionCode.GB)); /** @type {i18n.phonenumbers.PhoneNumber} */ var number3 = phoneUtil.parseAndKeepRawInput('011442087654321', RegionCode.US); assertEquals('011 44 20 8765 4321', - phoneUtil.formatInOriginalFormat(number3, RegionCode.US)); + phoneUtil.formatInOriginalFormat(number3, RegionCode.US)); /** @type {i18n.phonenumbers.PhoneNumber} */ var number4 = phoneUtil.parseAndKeepRawInput('442087654321', RegionCode.GB); assertEquals('44 20 8765 4321', - phoneUtil.formatInOriginalFormat(number4, RegionCode.GB)); + phoneUtil.formatInOriginalFormat(number4, RegionCode.GB)); /** @type {i18n.phonenumbers.PhoneNumber} */ var number5 = phoneUtil.parse('+442087654321', RegionCode.GB); assertEquals('(020) 8765 4321', - phoneUtil.formatInOriginalFormat(number5, RegionCode.GB)); + phoneUtil.formatInOriginalFormat(number5, RegionCode.GB)); - // Invalid numbers should be formatted using its raw input when that is - // available. Note area codes starting with 7 are intentionally excluded in + // Invalid numbers that we have a formatting pattern for should be formatted + // properly. Note area codes starting with 7 are intentionally excluded in // the test metadata for testing purposes. /** @type {i18n.phonenumbers.PhoneNumber} */ var number6 = phoneUtil.parseAndKeepRawInput('7345678901', RegionCode.US); - assertEquals('7345678901', - phoneUtil.formatInOriginalFormat(number6, RegionCode.US)); + assertEquals('734 567 8901', + phoneUtil.formatInOriginalFormat(number6, RegionCode.US)); - // When the raw input is unavailable, format as usual. + // US is not a leading zero country, and the presence of the leading zero + // leads us to format the number using raw_input. /** @type {i18n.phonenumbers.PhoneNumber} */ - var number7 = phoneUtil.parse('7345678901', RegionCode.US); - assertEquals('734 567 8901', - phoneUtil.formatInOriginalFormat(number7, RegionCode.US)); + var number7 = phoneUtil.parseAndKeepRawInput('0734567 8901', RegionCode.US); + assertEquals('0734567 8901', + phoneUtil.formatInOriginalFormat(number7, RegionCode.US)); + + // This number is valid, but we don't have a formatting pattern for it. + // Fall back to the raw input. + /** @type {i18n.phonenumbers.PhoneNumber} */ + var number8 = phoneUtil.parseAndKeepRawInput('02-4567-8900', RegionCode.KR); + assertEquals('02-4567-8900', + phoneUtil.formatInOriginalFormat(number8, RegionCode.KR)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var number9 = phoneUtil.parseAndKeepRawInput('01180012345678', RegionCode.US); + assertEquals('011 800 1234 5678', + phoneUtil.formatInOriginalFormat(number9, RegionCode.US)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var number10 = phoneUtil.parseAndKeepRawInput('+80012345678', RegionCode.KR); + assertEquals('+800 1234 5678', + phoneUtil.formatInOriginalFormat(number10, RegionCode.KR)); + + // US local numbers are formatted correctly, as we have formatting patterns + // for them. + /** @type {i18n.phonenumbers.PhoneNumber} */ + var localNumberUS = phoneUtil.parseAndKeepRawInput('2530000', RegionCode.US); + assertEquals('253 0000', + phoneUtil.formatInOriginalFormat(localNumberUS, RegionCode.US)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithNationalPrefixUS = + phoneUtil.parseAndKeepRawInput('18003456789', RegionCode.US); + assertEquals('1 800 345 6789', + phoneUtil.formatInOriginalFormat(numberWithNationalPrefixUS, + RegionCode.US)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithoutNationalPrefixGB = + phoneUtil.parseAndKeepRawInput('2087654321', RegionCode.GB); + assertEquals('20 8765 4321', + phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixGB, + RegionCode.GB)); + // Make sure no metadata is modified as a result of the previous function + // call. + assertEquals('(020) 8765 4321', + phoneUtil.formatInOriginalFormat(number5, RegionCode.GB)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithNationalPrefixMX = + phoneUtil.parseAndKeepRawInput('013312345678', RegionCode.MX); + assertEquals('01 33 1234 5678', + phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX, + RegionCode.MX)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithoutNationalPrefixMX = + phoneUtil.parseAndKeepRawInput('3312345678', RegionCode.MX); + assertEquals('33 1234 5678', + phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixMX, + RegionCode.MX)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var italianFixedLineNumber = + phoneUtil.parseAndKeepRawInput('0212345678', RegionCode.IT); + assertEquals('02 1234 5678', + phoneUtil.formatInOriginalFormat(italianFixedLineNumber, RegionCode.IT)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithNationalPrefixJP = + phoneUtil.parseAndKeepRawInput('00777012', RegionCode.JP); + assertEquals('0077-7012', + phoneUtil.formatInOriginalFormat(numberWithNationalPrefixJP, + RegionCode.JP)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithoutNationalPrefixJP = + phoneUtil.parseAndKeepRawInput('0777012', RegionCode.JP); + assertEquals('0777012', + phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixJP, + RegionCode.JP)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithCarrierCodeBR = + phoneUtil.parseAndKeepRawInput('012 3121286979', RegionCode.BR); + assertEquals('012 3121286979', + phoneUtil.formatInOriginalFormat(numberWithCarrierCodeBR, RegionCode.BR)); + + // The default national prefix used in this case is 045. When a number with + // national prefix 044 is entered, we return the raw input as we don't want to + // change the number entered. + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithNationalPrefixMX1 = + phoneUtil.parseAndKeepRawInput('044(33)1234-5678', RegionCode.MX); + assertEquals('044(33)1234-5678', + phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX1, + RegionCode.MX)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var numberWithNationalPrefixMX2 = + phoneUtil.parseAndKeepRawInput('045(33)1234-5678', RegionCode.MX); + assertEquals('045 33 1234 5678', + phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX2, + RegionCode.MX)); + + // The default international prefix used in this case is 0011. When a number + // with international prefix 0012 is entered, we return the raw input as we + // don't want to change the number entered. + /** @type {i18n.phonenumbers.PhoneNumber} */ + var outOfCountryNumberFromAU1 = + phoneUtil.parseAndKeepRawInput('0012 16502530000', RegionCode.AU); + assertEquals('0012 16502530000', + phoneUtil.formatInOriginalFormat(outOfCountryNumberFromAU1, + RegionCode.AU)); + + /** @type {i18n.phonenumbers.PhoneNumber} */ + var outOfCountryNumberFromAU2 = + phoneUtil.parseAndKeepRawInput('0011 16502530000', RegionCode.AU); + assertEquals('0011 1 650 253 0000', + phoneUtil.formatInOriginalFormat(outOfCountryNumberFromAU2, + RegionCode.AU)); } function testIsPremiumRate() { @@ -1045,6 +1258,8 @@ function testIsTollFree() { tollFreeNumber.setCountryCode(49); tollFreeNumber.setNationalNumber(8001234567); assertEquals(PNT.TOLL_FREE, phoneUtil.getNumberType(tollFreeNumber)); + + assertEquals(PNT.TOLL_FREE, phoneUtil.getNumberType(INTERNATIONAL_TOLL_FREE)); } function testIsMobile() { @@ -1119,6 +1334,7 @@ function testIsValidNumber() { assertTrue(phoneUtil.isValidNumber(US_NUMBER)); assertTrue(phoneUtil.isValidNumber(IT_NUMBER)); assertTrue(phoneUtil.isValidNumber(GB_MOBILE)); + assertTrue(phoneUtil.isValidNumber(INTERNATIONAL_TOLL_FREE)); /** @type {i18n.phonenumbers.PhoneNumber} */ var nzNumber = new i18n.phonenumbers.PhoneNumber(); @@ -1163,6 +1379,10 @@ function testIsValidForRegion() { reNumber.setNationalNumber(800123456); assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT)); assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE)); + assertTrue(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE, + RegionCode.UN001)); + assertFalse(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE, + RegionCode.US)); } function testIsNotValidNumber() { @@ -1189,18 +1409,23 @@ function testIsNotValidNumber() { invalidNumber.setCountryCode(64); invalidNumber.setNationalNumber(3316005); assertFalse(phoneUtil.isValidNumber(invalidNumber)); + + assertFalse(phoneUtil.isValidNumber(INTERNATIONAL_TOLL_FREE_TOO_LONG)); } function testGetRegionCodeForCountryCode() { assertEquals(RegionCode.US, phoneUtil.getRegionCodeForCountryCode(1)); assertEquals(RegionCode.GB, phoneUtil.getRegionCodeForCountryCode(44)); assertEquals(RegionCode.DE, phoneUtil.getRegionCodeForCountryCode(49)); + assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForCountryCode(800)); } function testGetRegionCodeForNumber() { assertEquals(RegionCode.BS, phoneUtil.getRegionCodeForNumber(BS_NUMBER)); assertEquals(RegionCode.US, phoneUtil.getRegionCodeForNumber(US_NUMBER)); assertEquals(RegionCode.GB, phoneUtil.getRegionCodeForNumber(GB_MOBILE)); + assertEquals(RegionCode.UN001, + phoneUtil.getRegionCodeForNumber(INTERNATIONAL_TOLL_FREE)); } function testGetCountryCodeForRegion() { @@ -1208,6 +1433,7 @@ function testGetCountryCodeForRegion() { assertEquals(64, phoneUtil.getCountryCodeForRegion(RegionCode.NZ)); assertEquals(0, phoneUtil.getCountryCodeForRegion(null)); assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.ZZ)); + assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.UN001)); // CS is already deprecated so the library doesn't support it. assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.CS)); } @@ -1224,6 +1450,7 @@ function testGetNationalDiallingPrefixForRegion() { // Test cases with invalid regions. assertNull(phoneUtil.getNddPrefixForRegion(null, false)); assertNull(phoneUtil.getNddPrefixForRegion(RegionCode.ZZ, false)); + assertNull(phoneUtil.getNddPrefixForRegion(RegionCode.UN001, false)); // CS is already deprecated so the library doesn't support it. assertNull(phoneUtil.getNddPrefixForRegion(RegionCode.CS, false)); } @@ -1233,6 +1460,7 @@ function testIsNANPACountry() { assertTrue(phoneUtil.isNANPACountry(RegionCode.BS)); assertFalse(phoneUtil.isNANPACountry(RegionCode.DE)); assertFalse(phoneUtil.isNANPACountry(RegionCode.ZZ)); + assertFalse(phoneUtil.isNANPACountry(RegionCode.UN001)); assertFalse(phoneUtil.isNANPACountry(null)); } @@ -1240,6 +1468,7 @@ function testIsPossibleNumber() { assertTrue(phoneUtil.isPossibleNumber(US_NUMBER)); assertTrue(phoneUtil.isPossibleNumber(US_LOCAL_NUMBER)); assertTrue(phoneUtil.isPossibleNumber(GB_NUMBER)); + assertTrue(phoneUtil.isPossibleNumber(INTERNATIONAL_TOLL_FREE)); assertTrue( phoneUtil.isPossibleNumberString('+1 650 253 0000', RegionCode.US)); @@ -1259,6 +1488,8 @@ function testIsPossibleNumber() { phoneUtil.isPossibleNumberString('7031 3000', RegionCode.GB)); assertTrue( phoneUtil.isPossibleNumberString('3331 6005', RegionCode.NZ)); + assertTrue( + phoneUtil.isPossibleNumberString('+800 1234 5678', RegionCode.UN001)); } function testIsPossibleNumberWithReason() { @@ -1266,32 +1497,35 @@ function testIsPossibleNumberWithReason() { // National numbers for country calling code +1 that are within 7 to 10 digits // are possible. assertEquals(VR.IS_POSSIBLE, - phoneUtil.isPossibleNumberWithReason(US_NUMBER)); + phoneUtil.isPossibleNumberWithReason(US_NUMBER)); assertEquals(VR.IS_POSSIBLE, - phoneUtil.isPossibleNumberWithReason(US_LOCAL_NUMBER)); + phoneUtil.isPossibleNumberWithReason(US_LOCAL_NUMBER)); assertEquals(VR.TOO_LONG, - phoneUtil.isPossibleNumberWithReason(US_LONG_NUMBER)); + phoneUtil.isPossibleNumberWithReason(US_LONG_NUMBER)); /** @type {i18n.phonenumbers.PhoneNumber} */ var number = new i18n.phonenumbers.PhoneNumber(); number.setCountryCode(0); number.setNationalNumber(2530000); assertEquals(VR.INVALID_COUNTRY_CODE, - phoneUtil.isPossibleNumberWithReason(number)); + phoneUtil.isPossibleNumberWithReason(number)); number = new i18n.phonenumbers.PhoneNumber(); number.setCountryCode(1); number.setNationalNumber(253000); assertEquals(VR.TOO_SHORT, - phoneUtil.isPossibleNumberWithReason(number)); + phoneUtil.isPossibleNumberWithReason(number)); number = new i18n.phonenumbers.PhoneNumber(); number.setCountryCode(65); number.setNationalNumber(1234567890); assertEquals(VR.IS_POSSIBLE, - phoneUtil.isPossibleNumberWithReason(number)); + phoneUtil.isPossibleNumberWithReason(number)); + + assertEquals(VR.TOO_LONG, + phoneUtil.isPossibleNumberWithReason(INTERNATIONAL_TOLL_FREE_TOO_LONG)); // Try with number that we don't have metadata for. /** @type {i18n.phonenumbers.PhoneNumber} */ @@ -1299,19 +1533,20 @@ function testIsPossibleNumberWithReason() { adNumber.setCountryCode(376); adNumber.setNationalNumber(12345); assertEquals(VR.IS_POSSIBLE, - phoneUtil.isPossibleNumberWithReason(adNumber)); + phoneUtil.isPossibleNumberWithReason(adNumber)); adNumber.setCountryCode(376); adNumber.setNationalNumber(13); assertEquals(VR.TOO_SHORT, - phoneUtil.isPossibleNumberWithReason(adNumber)); + phoneUtil.isPossibleNumberWithReason(adNumber)); adNumber.setCountryCode(376); adNumber.setNationalNumber(12345678901234567); assertEquals(VR.TOO_LONG, - phoneUtil.isPossibleNumberWithReason(adNumber)); + phoneUtil.isPossibleNumberWithReason(adNumber)); } function testIsNotPossibleNumber() { assertFalse(phoneUtil.isPossibleNumber(US_LONG_NUMBER)); + assertFalse(phoneUtil.isPossibleNumber(INTERNATIONAL_TOLL_FREE_TOO_LONG)); /** @type {i18n.phonenumbers.PhoneNumber} */ var number = new i18n.phonenumbers.PhoneNumber(); @@ -1323,26 +1558,20 @@ function testIsNotPossibleNumber() { number.setCountryCode(44); number.setNationalNumber(300); assertFalse(phoneUtil.isPossibleNumber(number)); - assertFalse( phoneUtil.isPossibleNumberString('+1 650 253 00000', RegionCode.US)); assertFalse( phoneUtil.isPossibleNumberString('(650) 253-00000', RegionCode.US)); assertFalse( phoneUtil.isPossibleNumberString('I want a Pizza', RegionCode.US)); + assertFalse(phoneUtil.isPossibleNumberString('253-000', RegionCode.US)); + assertFalse(phoneUtil.isPossibleNumberString('1 3000', RegionCode.GB)); + assertFalse(phoneUtil.isPossibleNumberString('+44 300', RegionCode.GB)); assertFalse( - phoneUtil.isPossibleNumberString('253-000', RegionCode.US)); - assertFalse( - phoneUtil.isPossibleNumberString('1 3000', RegionCode.GB)); - assertFalse( - phoneUtil.isPossibleNumberString('+44 300', RegionCode.GB)); + phoneUtil.isPossibleNumberString('+800 1234 5678 9', RegionCode.UN001)); } function testTruncateTooLongNumber() { - // US number 650-253-0000, but entered with one additional digit at the end. - assertTrue(phoneUtil.truncateTooLongNumber(US_LONG_NUMBER)); - assertTrue(US_NUMBER.equals(US_LONG_NUMBER)); - // GB number 080 1234 5678, but entered with 4 extra digits at the end. /** @type {i18n.phonenumbers.PhoneNumber} */ var tooLongNumber = new i18n.phonenumbers.PhoneNumber(); @@ -1367,6 +1596,15 @@ function testTruncateTooLongNumber() { assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber)); assertTrue(validNumber.equals(tooLongNumber)); + // US number 650-253-0000, but entered with one additional digit at the end. + tooLongNumber = US_LONG_NUMBER.clone(); + assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber)); + assertTrue(US_NUMBER.equals(tooLongNumber)); + + tooLongNumber = INTERNATIONAL_TOLL_FREE_TOO_LONG.clone(); + assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber)); + assertTrue(INTERNATIONAL_TOLL_FREE.equals(tooLongNumber)); + // Tests what happens when a valid number is passed in. /** @type {i18n.phonenumbers.PhoneNumber} */ var validNumberCopy = validNumber.clone(); @@ -1627,6 +1865,22 @@ function testMaybeExtractCountryCode() { } number = new i18n.phonenumbers.PhoneNumber(); try { + phoneNumber = '+80012345678'; + countryCallingCode = 800; + numberToFill = new goog.string.StringBuffer(); + assertEquals('Did not extract country calling code ' + countryCallingCode + + ' correctly.', + countryCallingCode, + phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, + numberToFill, true, number)); + assertEquals('Did not figure out CountryCodeSource correctly', + CCS.FROM_NUMBER_WITH_PLUS_SIGN, + number.getCountryCodeSource()); + } catch (e) { + fail('Should not have thrown an exception: ' + e.toString()); + } + number = new i18n.phonenumbers.PhoneNumber(); + try { phoneNumber = '2345-6789'; numberToFill = new goog.string.StringBuffer(); assertEquals('Should not have extracted a country calling code - ' + @@ -1792,6 +2046,8 @@ function testParseNumberWithAlphaCharacters() { function testParseWithInternationalPrefixes() { assertTrue(US_NUMBER.equals( phoneUtil.parse('+1 (650) 253-0000', RegionCode.NZ))); + assertTrue(INTERNATIONAL_TOLL_FREE.equals( + phoneUtil.parse('011 800 1234 5678', RegionCode.US))); assertTrue(US_NUMBER.equals( phoneUtil.parse('1-650-253-0000', RegionCode.US))); // Calling the US number from Singapore by using different service providers @@ -2130,6 +2386,8 @@ function testParseNumbersWithPlusWithNoRegion() { NZ_NUMBER.equals(phoneUtil.parse('Tel: +64 3 331 6005', RegionCode.ZZ))); assertTrue( NZ_NUMBER.equals(phoneUtil.parse('+64 3 331 6005', null))); + assertTrue( + INTERNATIONAL_TOLL_FREE.equals(phoneUtil.parse('+800 1234 5678', null))); // It is important that we set the carrier code to an empty string, since we // used ParseAndKeepRawInput and no carrier code was found. @@ -2204,6 +2462,16 @@ function testParseExtensions() { phoneUtil.parse('+44 2034567890 X 456', RegionCode.GB))); assertTrue(ukNumber.equals( phoneUtil.parse('+44-2034567890;ext=456', RegionCode.GB))); + // Full-width extension, 'extn' only. + assertTrue(ukNumber.equals( + phoneUtil.parse('+442034567890\uFF45\uFF58\uFF54\uFF4E456', + RegionCode.GB))); + // 'xtn' only. + assertTrue(ukNumber.equals( + phoneUtil.parse('+442034567890\uFF58\uFF54\uFF4E456', RegionCode.GB))); + // 'xt' only. + assertTrue(ukNumber.equals( + phoneUtil.parse('+442034567890\uFF58\uFF54456', RegionCode.GB))); /** @type {i18n.phonenumbers.PhoneNumber} */ var usWithExtension = new i18n.phonenumbers.PhoneNumber(); @@ -2350,6 +2618,8 @@ function testIsNumberMatchMatches() { assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH, phoneUtil.isNumberMatch('+64 3 331 6005', '+64 03 331 6005')); assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH, + phoneUtil.isNumberMatch('+800 1234 5678', '+80012345678')); + assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH, phoneUtil.isNumberMatch('+64 03 331-6005', '+64 03331 6005')); assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH, phoneUtil.isNumberMatch('+643 331-6005', '+64033316005')); @@ -2407,6 +2677,8 @@ function testIsNumberMatchNonMatches() { // Non-matches. assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH, phoneUtil.isNumberMatch('03 331 6005', '03 331 6006')); + assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH, + phoneUtil.isNumberMatch('+800 1234 5678', '+1 800 1234 5678')); // Different country calling code, partial number match. assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH, phoneUtil.isNumberMatch('+64 3 331-6005', '+16433316005')); @@ -2528,11 +2800,14 @@ function testCanBeInternationallyDialled() { // We have no data for NZ - should return true. assertTrue(phoneUtil.canBeInternationallyDialled(NZ_NUMBER)); + assertTrue(phoneUtil.canBeInternationallyDialled(INTERNATIONAL_TOLL_FREE)); } function testIsAlphaNumber() { assertTrue(phoneUtil.isAlphaNumber('1800 six-flags')); assertTrue(phoneUtil.isAlphaNumber('1800 six-flags ext. 1234')); + assertTrue(phoneUtil.isAlphaNumber('+800 six-flags')); assertFalse(phoneUtil.isAlphaNumber('1800 123-1234')); assertFalse(phoneUtil.isAlphaNumber('1800 123-1234 extension: 1234')); + assertFalse(phoneUtil.isAlphaNumber('+800 1234-1234')); } diff --git a/javascript/i18n/phonenumbers/regioncodefortesting.js b/javascript/i18n/phonenumbers/regioncodefortesting.js index 28fa988..2380f12 100755 --- a/javascript/i18n/phonenumbers/regioncodefortesting.js +++ b/javascript/i18n/phonenumbers/regioncodefortesting.js @@ -29,10 +29,14 @@ goog.provide('i18n.phonenumbers.RegionCode'); * @enum {string} */ i18n.phonenumbers.RegionCode = { + // Region code for global networks (e.g. +800 numbers). + UN001: '001', AD: 'AD', AO: 'AO', + AQ: 'AQ', AR: 'AR', AU: 'AU', + BR: 'BR', BS: 'BS', CA: 'CA', CN: 'CN', diff --git a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java index e294eda..a130688 100644 --- a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +++ b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java @@ -361,6 +361,8 @@ public class BuildMetadataJsonFromXml extends Command { } // required PhoneNumberDesc emergency = 27; toJsArray(metadata.getEmergency(), jsArrayBuilder); + // required PhoneNumberDesc voicemail = 28; + toJsArray(metadata.getVoicemail(), jsArrayBuilder); jsArrayBuilder.endArray(); }