diff --git a/javascript/README b/javascript/README index 79b52d61d..5d96a917d 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 278). +The JavaScript library is ported from the Java implementation (revision 325). When the Java project gets updated follow these steps to update the JavaScript project: diff --git a/javascript/i18n/phonenumbers/asyoutypeformatter.js b/javascript/i18n/phonenumbers/asyoutypeformatter.js index 4d2ba0fc6..e4731059a 100644 --- a/javascript/i18n/phonenumbers/asyoutypeformatter.js +++ b/javascript/i18n/phonenumbers/asyoutypeformatter.js @@ -504,9 +504,8 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype. this.originalPosition_ = this.accruedInput_.getLength(); } // We do formatting on-the-fly only when each character entered is either a - // plus sign or a digit. - if (!i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN - .test(nextChar)) { + // digit, or a plus sign (accepted at the start of the number only). + if (!this.isDigitOrLeadingPlusSign_(nextChar)) { this.ableToFormat_ = false; } if (!this.ableToFormat_) { @@ -576,6 +575,20 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype. }; +/** + * @param {string} nextChar + * @return {boolean} + * @private + */ +i18n.phonenumbers.AsYouTypeFormatter.prototype.isDigitOrLeadingPlusSign_ = + function(nextChar) { + return i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN + .test(nextChar) || + (this.accruedInput_.getLength() == 1 && + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN.test(nextChar)); +}; + + /** * @return {string} * @private diff --git a/javascript/i18n/phonenumbers/asyoutypeformatter_test.js b/javascript/i18n/phonenumbers/asyoutypeformatter_test.js index d27f000b3..6a9164a25 100644 --- a/javascript/i18n/phonenumbers/asyoutypeformatter_test.js +++ b/javascript/i18n/phonenumbers/asyoutypeformatter_test.js @@ -47,6 +47,24 @@ function testInvalidRegion() { assertEquals('650253', f.inputDigit('3')); } +function testInvalidPlusSign() { + /** @type {i18n.phonenumbers.AsYouTypeFormatter} */ + var f = new i18n.phonenumbers.AsYouTypeFormatter('ZZ'); + assertEquals('+', f.inputDigit('+')); + assertEquals('+4', f.inputDigit('4')); + assertEquals('+48 ', f.inputDigit('8')); + assertEquals('+48 8', f.inputDigit('8')); + assertEquals('+48 88', f.inputDigit('8')); + assertEquals('+48 88 1', f.inputDigit('1')); + assertEquals('+48 88 12', f.inputDigit('2')); + assertEquals('+48 88 123', f.inputDigit('3')); + assertEquals('+48 88 123 1', f.inputDigit('1')); + // A plus sign can only appear at the beginning of the number; + // otherwise, no formatting is applied. + assertEquals('+48881231+', f.inputDigit('+')); + assertEquals('+48881231+2', f.inputDigit('2')); +} + function testTooLongNumberMatchingMultipleLeadingDigits() { // See http://code.google.com/p/libphonenumber/issues/detail?id=36 // The bug occurred last time for countries which have two formatting rules diff --git a/javascript/i18n/phonenumbers/metadata.js b/javascript/i18n/phonenumbers/metadata.js index 575094b8c..b7fd74ffa 100644 --- a/javascript/i18n/phonenumbers/metadata.js +++ b/javascript/i18n/phonenumbers/metadata.js @@ -122,7 +122,7 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = { ,258:["MZ"] ,260:["ZM"] ,261:["MG"] -,262:["RE","TF","YT"] +,262:["RE","YT"] ,263:["ZW"] ,264:["NA"] ,265:["MW"] @@ -404,11 +404,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"AR":[,[,,"[1-9]\\d{9,11}","\\d{6,12}"] -,[,,"[1-9]\\d{9}","\\d{6,10}",,,"1123456789"] -,[,,"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,12}",,,"91123456789"] -,[,,"80\\d{8}","\\d{10}",,,"8012345678"] -,[,,"6(?:0\\d|10)\\d{7}","\\d{10}",,,"6001234567"] +,"AR":[,[,,"[1-8]\\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"] +,[,,"800\\d{7}","\\d{10}",,,"8001234567"] +,[,,"60[04579]\\d{7}","\\d{10}",,,"6001234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -444,7 +444,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"810\\d{7}","\\d{10}",,,"8101234567"] ] ,"AS":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"6846(?:22|33|44|55|77|88|9[19])\\d{4}","\\d{7}(?:\\d{3})?",,,"6846221234"] @@ -458,8 +458,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"684",[,,"NA","NA"] ,[,,"NA","NA"] ] -,"AT":[,[,,"\\d{4,13}","\\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]|8[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(?:1[27]|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}|5(?:0[1-9]|[79]\\d)\\d{2,10}|720\\d{6,10}","\\d{3,13}",,,"1234567890"] +,"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]|8[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"] ,[,,"6(?:44|5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}","\\d{7,13}",,,"644123456"] ,[,,"80[02]\\d{6,10}","\\d{9,13}",,,"800123456"] ,[,,"(?:711|9(?:0[01]|3[019]))\\d{6,10}","\\d{9,13}",,,"900123456"] @@ -475,30 +475,34 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"5(?:(?:0[1-9]|17)\\d{2,10}|[79]\\d{3,11})|720\\d{6,10}","\\d{5,13}",,,"50123"] ] ,"AU":[,[,,"[1-578]\\d{5,9}","\\d{6,10}"] ,[,,"[237]\\d{8}|8(?:[68]\\d{3}|7[1-4]\\d{2}|9(?:[02-9]\\d{2}|1(?:[0-57-9]\\d|6[0135-9])))\\d{4}","\\d{8,9}",,,"212345678"] -,[,,"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"] -,[,,"1(?:80(?:0\\d{2})?|3(?:00\\d{2})?)\\d{4}","\\d{6,10}",,,"1800123456"] -,[,,"190[0126]\\d{6}","\\d{10}",,,"1900123456"] -,[,,"NA","NA"] +,[,,"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"] +,[,,"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"] ,[,,"500\\d{6}","\\d{9}",,,"500123456"] ,[,,"550\\d{6}","\\d{9}",,,"550123456"] ,"AU",61,"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,"0",,"0011",,[[,"([2378])(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"] ,"(0$1)",""] -,[,"(4\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"] +,[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[45]|14"] ,"0$1",""] -,[,"(5[05]0)(\\d{3})(\\d{3})","$1 $2 $3",["5"] +,[,"(16)(\\d{3})(\\d{2,4})","$1 $2 $3",["16"] ,"0$1",""] -,[,"(1[389]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[38]0|9)","1(?:[38]00|9)"] +,[,"(1[389]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[38]0|90)","1(?:[38]00|90)"] ,"$1",""] -,[,"(180)(\\d{4})","$1 $2",["180","180[1-9]"] +,[,"(180)(2\\d{3})","$1 $2",["180","1802"] +,"$1",""] +,[,"(19\\d)(\\d{3})","$1 $2",["19[13]"] +,"$1",""] +,[,"(19\\d{2})(\\d{4})","$1 $2",["19[67]"] ,"$1",""] ,[,"(13)(\\d{2})(\\d{2})","$1 $2 $3",["13[1-9]"] ,"$1",""] ] -,,[,,"NA","NA"] +,,[,,"16\\d{3,7}","\\d{5,9}",,,"1612345"] ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ] @@ -529,20 +533,20 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"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"] ] ,"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(?:16|2\\d|3[0-24]|4[1468]|55|6[56]|79)|365?\\d|44\\d{2})\\d{5}","\\d{5,9}",,,"123123456"] +,[,,"(?: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"] ,[,,"(?:[46]0|5[015]|7[07])\\d{7}","\\d{9}",,,"401234567"] ,[,,"88\\d{7}","\\d{9}",,,"881234567"] ,[,,"900200\\d{3}","\\d{9}",,,"900200123"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"AZ",994,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]"] +,"AZ",994,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["(?:1[28]|2(?:[45]2|[0-36])|365)"] ,"(0$1)",""] ,[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["22"] ,"(0$1)",""] -,[,"(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"] +,[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["36[0-46-9]"] ,"(0$1)",""] -,[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[013-79]|2[013-9]"] +,[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[013-79]|2(?:[45][13-9]|[7-9])"] ,"(0$1)",""] ,[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[4-8]"] ,"0$1",""] @@ -602,7 +606,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"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"] -,[,,"4(?:7\\d|8[4-9]|9[1-9])\\d{6}","\\d{9}",,,"470123456"] +,[,,"4(?:7\\d|8[3-9]|9[1-9])\\d{6}","\\d{9}",,,"470123456"] ,[,,"800\\d{5}","\\d{8}",,,"80012345"] ,[,,"(?:90|7[07])\\d{6}","\\d{8}",,,"90123456"] ,[,,"87\\d{6}","\\d{8}",,,"87123456"] @@ -623,7 +627,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"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"] -,[,,"7(?:[024-6]\\d|1[0-4689]|3[0-6]|7[01]|8[013-9]|9[0-4])\\d{5}","\\d{8}",,,"70123456"] +,[,,"7(?:[02-68]\\d|1[0-4689]|7[0-3]|9[0-6])\\d{5}","\\d{8}",,,"70123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -664,7 +668,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"BH":[,[,,"[136-9]\\d{7}","\\d{8}"] ,[,,"(?:1(?:3[3-6]|6[0156]|7\\d)|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}",,,"17001234"] -,[,,"(?:3(?:[369]\\d|77|8[38])|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}",,,"36001234"] +,[,,"(?:3(?:[23469]\\d|77|8[38])|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}",,,"36001234"] ,[,,"80\\d{6}","\\d{8}",,,"80123456"] ,[,,"(?:87|9[014578])\\d{6}","\\d{8}",,,"90123456"] ,[,,"84\\d{6}","\\d{8}",,,"84123456"] @@ -826,21 +830,23 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"BY":[,[,,"[12-4]\\d{8}|[89]\\d{9}","\\d{7,10}"] +,"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"] -,[,,"(?:2(?:5[679]|9[1-9])|33\\d|44\\d)\\d{6}","\\d{9}",,,"294911911"] -,[,,"80[13]\\d{7}","\\d{10}",,,"8011234567"] -,[,,"902\\d{7}","\\d{10}",,,"9021234567"] +,[,,"(?:2(?:5[5679]|9[1-9])|33\\d|44\\d)\\d{6}","\\d{9}",,,"294911911"] +,[,,"8(?:0[13]|20\\d)\\d{7}","\\d{10,11}",,,"8011234567"] +,[,,"(?:810|902)\\d{7}","\\d{10}",,,"9021234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,"BY",375,"8~10","8",,,"80?",,,,[[,"([1-4]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[1-4]"] ,"8 0$1",""] -,[,"([89]\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"] +,[,"([89]\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8[01]|9"] +,"8 $1",""] +,[,"(8\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["82"] ,"8 $1",""] ] ,,[,,"NA","NA"] -,,,[,,"NA","NA"] +,,,[,,"8(?:[01]|20)\\d{8}|902\\d{7}","\\d{10,11}",,,"82012345678"] ,[,,"NA","NA"] ] ,"BZ":[,[,,"[2-8]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"] @@ -861,8 +867,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,1] ,"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]|[18]0|78)|8(?:[06]7|19|)|90[25])[2-9]\\d{6}|310\\d{4}","\\d{7}(?:\\d{3})?",,,"2042345678"] -,[,,"(?: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]|[18]0|78)|8(?:[06]7|19|)|90[25])[2-9]\\d{6}","\\d{7}(?:\\d{3})?",,,"2042345678"] +,[,,"(?: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"] +,[,,"(?: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}","\\d{7}(?:\\d{3})?",,,"2042345678"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}|310\\d{4}","\\d{7}(?:\\d{3})?",,,"8002123456"] ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002123456"] ,[,,"NA","NA"] @@ -1022,7 +1028,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"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[159])|4[135]1|5(?:1\\d|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898)\\d{8}|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7[0-46-9]|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|[1579]\\d|2[248]|3[04-9]|4[3-6]|6[2368])|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"] +,[,,"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|[1579]\\d|2[248]|3[04-9]|4[3-6]|6[2368])|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[025-9])\\d{8}","\\d{11}",,,"13123456789"] ,[,,"(?:10)?800\\d{7}","\\d{10,12}",,,"8001234567"] ,[,,"16[08]\\d{5}","\\d{8}",,,"16812345"] @@ -1039,9 +1045,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1",""] ,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"] ,"0$1",""] -,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[159])|4[135]1|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898"] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"] ,"0$1",""] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7[0-46-9]|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] ,"0$1",""] ,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]"] ,"",""] @@ -1056,9 +1062,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"] ] -,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[159])|4[135]1|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898"] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"] ] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7[0-46-9]|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] ] ,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]"] ] @@ -1077,7 +1083,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"CO",57,"00[579]|#555|#999","0",,,"0([3579]|4(?:44|56))",,,,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"] +,"CO",57,"00[579]|#555|#999","0",,,"0([3579]|4(?:44|56))?",,,,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"] ,"($1)","0$CC $1"] ,[,"(\\d{3})(\\d{7})","$1 $2",["3"] ,"","0$CC $1"] @@ -1095,15 +1101,15 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"CR":[,[,,"[2489]\\d{7,9}","\\d{8,10}"] +,"CR":[,[,,"[24589]\\d{7,9}","\\d{8,10}"] ,[,,"2[24-7]\\d{6}","\\d{8}",,,"22123456"] -,[,,"8[36789]\\d{6}","\\d{8}",,,"83123456"] +,[,,"57[01]\\d[01]\\d{3}|8[36789]\\d{6}","\\d{8}",,,"83123456"] ,[,,"800\\d{7}","\\d{10}",,,"8001234567"] ,[,,"90[059]\\d{7}","\\d{10}",,,"9001234567"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"40[02]0\\d{4}","\\d{8}",,,"40001234"] -,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]|8[3-9]"] +,[,,"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]"] ,"","$CC $1"] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]0"] ,"","$CC $1"] @@ -1830,7 +1836,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"HT":[,[,,"[2-489]\\d{7}","\\d{8}"] ,[,,"2(?:[24]\\d|5[1-5]|94)\\d{5}","\\d{8}",,,"22453300"] -,[,,"(?:3[4-9]|4\\d)\\d{6}","\\d{8}",,,"34101234"] +,[,,"(?:3[2-9]|4\\d)\\d{6}","\\d{8}",,,"34101234"] ,[,,"8\\d{7}","\\d{8}",,,"80012345"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -1842,7 +1848,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"HU":[,[,,"\\d{8,9}","\\d{6,9}"] +,"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"] ,[,,"(?:[27]0|3[01])\\d{7}","\\d{9}",,,"201234567"] ,[,,"80\\d{6}","\\d{8}",,,"80123456"] @@ -2052,7 +2058,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"IT":[,[,,"[01389]\\d{5,10}","\\d{6,11}"] +,"IT":[,[,,"[0189]\\d{5,10}|3\\d{8,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"] ,[,,"80(?:0\\d{6}|3\\d{3})","\\d{6,9}",,,"800123456"] @@ -2178,32 +2184,34 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"KG":[,[,,"[356-8]\\d{8}","\\d{5,9}"] -,[,,"(?:3(?:1(?:2\\d|3[1-9]|52|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-8]|59|6\\d|7[5-7])|9(?:22|4[1-7]|6[0-8]))|6(?:09|12|2[2-4])\\d)\\d{5}","\\d{5,9}",,,"312123456"] +,"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"] ,[,,"5[124-7]\\d{7}|7(?:0[05]|7\\d)\\d{6}","\\d{9}",,,"700123456"] -,[,,"800\\d{6}","\\d{9}",,,"800123456"] +,[,,"800\\d{6,7}","\\d{9,10}",,,"800123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"KG",996,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["31[25]|[5-8]"] +,"KG",996,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["31[25]|[5-7]"] ,"0$1",""] ,[,"(\\d{4})(\\d{5})","$1 $2",["3(?:1[36]|[2-9])"] ,"0$1",""] +,[,"(\\d{3})(\\d{3})(\\d)(\\d{3})","$1 $2 $3 $4",["8"] +,"0$1",""] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] ,"KH":[,[,,"[1-9]\\d{7,9}","\\d{6,10}"] -,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])[2-47-9]\\d{5}","\\d{6,8}",,,"23456789"] -,[,,"(?:(?:1[0-35-9]|9[1-49])[1-9]|8(?:0[89]|5[2-689]))\\d{5}","\\d{8}",,,"91234567"] -,[,,"1800(?:1\\d|2[09])\\d{4}","\\d{10}",,,"1800123456"] +,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[567][2-5])[2-46-9]\\d{5}","\\d{6,8}",,,"23456789"] +,[,,"(?:(?:1[0-35-9]|6[6-9]|7[06-89]|9\\d)[1-9]|8(?:0[89]|5[2-689]|8\\d{2}|[1349]\\d|))\\d{5}","\\d{8,9}",,,"91234567"] +,[,,"1800(?:1\\d|2[019])\\d{4}","\\d{10}",,,"1800123456"] ,[,,"1900(?:1\\d|2[09])\\d{4}","\\d{10}",,,"1900123456"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"KH",855,"00[178]","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1\\d[1-9]|[2-9]"] +,"KH",855,"00[178]","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["1\\d[1-9]|[2-9]"] ,"0$1",""] ,[,"(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3",["1[89]0"] ,"",""] @@ -2366,7 +2374,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"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[67]))\\d{5}","\\d{7,8}",,,"71123456"] +,[,,"(?:3\\d|7(?:[01]\\d|6[167]))\\d{5}","\\d{7,8}",,,"71123456"] ,[,,"NA","NA"] ,[,,"9[01]\\d{6}","\\d{8}",,,"90123456"] ,[,,"8[01]\\d{6}","\\d{8}",,,"80123456"] @@ -2374,7 +2382,7 @@ 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",""] -,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[67])"] +,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[167])"] ,"0$1",""] ] ,,[,,"NA","NA"] @@ -2401,14 +2409,14 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"90(?:0(?:2[278]|79|\\d{4})|1(?:23|\\d{4})|6(?:66|\\d{4}))\\d{2}","\\d{7,9}",,,"9002222"] ,[,,"701\\d{4}","\\d{7}",,,"7011234"] ,[,,"NA","NA"] -,"LI",423,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[23]|7[4-9]|87"] +,"LI",423,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[23]|7[4-9]|87"] ,"",""] ,[,"(6\\d)(\\d{3})(\\d{3})","$1 $2 $3",["6"] ,"",""] ,[,"([7-9]0\\d)(\\d{2})(\\d{2})","$1 $2 $3",["[7-9]0"] ,"",""] -,[,"([89]0\\d)(\\d{2})(\\d{2})(\\d{2})","0$1 $2 $3 $4",["[89]0"] -,"",""] +,[,"([89]0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[89]0"] +,"0$1",""] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] @@ -2602,7 +2610,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"8(?:03|14)\\d{5}","\\d{8}",,,"80312345"] ] ,"ME":[,[,,"[2-9]\\d{7,8}","\\d{6,9}"] -,[,,"(?:20[2-8]|3(?:0[2-7]|1[35-7]|2[367]|3[4-7])|4(?:0[237]|1[2467])|5(?:0[47]|1[27]|2[378]))\\d{5}","\\d{6,8}",,,"30234567"] +,[,,"(?: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"] ,[,,"6(?:32\\d|[89]\\d{2}|7(?:[0-8]\\d|9(?:[3-9]|[0-2]\\d)))\\d{4}","\\d{8,9}",,,"67622901"] ,[,,"800[28]\\d{4}","\\d{8}",,,"80080002"] ,[,,"(?:88\\d|9(?:4[13-8]|5[16-8]))\\d{5}","\\d{8}",,,"94515151"] @@ -2963,8 +2971,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ] ,"NC":[,[,,"[2-47-9]\\d{5}","\\d{6}"] -,[,,"(?:2[03-9]|35|4[1-7]|88)\\d{4}","\\d{6}",,,"201234"] -,[,,"(?:7[4-9]|8[0-79]|9\\d)\\d{4}","\\d{6}",,,"751234"] +,[,,"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}","\\d{6}",,,"201234"] +,[,,"(?:7[3-9]|8[0-79]|9\\d)\\d{4}","\\d{6}",,,"751234"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -3460,26 +3468,30 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"RS":[,[,,"[1-46-9]\\d{4,11}","\\d{5,12}"] -,[,,"[1-3]\\d{6,9}","\\d{5,10}",,,"1012345"] -,[,,"6[0-689]\\d{3,10}","\\d{5,12}",,,"6012345"] -,[,,"800\\d{3,6}","\\d{6,9}",,,"80012345"] -,[,,"(?:9[0-2]|42)\\d{4,7}","\\d{6,9}",,,"90012345"] +,"RS":[,[,,"[1-36-9]\\d{4,11}","\\d{5,12}"] +,[,,"[1-3]\\d{6,11}","\\d{5,12}",,,"101234567"] +,[,,"6(?:[0-689]|7\\d)\\d{6,7}","\\d{8,10}",,,"601234567"] +,[,,"800\\d{3,9}","\\d{6,12}",,,"80012345"] +,[,,"(?:90[0169]|78\\d)\\d{3,7}","\\d{6,12}",,,"90012345"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"RS",381,"00","0",,,"0",,,,[[,"([23]\\d{2})(\\d{4,7})","$1 $2",["(?:2[389]|39)0"] +,"RS",381,"00","0",,,"0",,,,[[,"([23]\\d{2})(\\d{4,9})","$1 $2",["(?:2[389]|39)0"] +,"0$1",""] +,[,"([1-3]\\d)(\\d{5,10})","$1 $2",["1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])"] +,"0$1",""] +,[,"(6\\d)(\\d{6,8})","$1 $2",["6"] ,"0$1",""] -,[,"([1-4]\\d)(\\d{4,8})","$1 $2",["1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])|42"] +,[,"([89]\\d{2})(\\d{3,9})","$1 $2",["[89]"] ,"0$1",""] -,[,"(6[0-689])(\\d{3,10})","$1 $2",["6"] +,[,"(7[26])(\\d{4,9})","$1 $2",["7[26]"] ,"0$1",""] -,[,"([89]\\d{2})(\\d{3,6})","$1 $2",["[89]"] +,[,"(7[08]\\d)(\\d{4,9})","$1 $2",["7[08]"] ,"0$1",""] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"7[06]\\d{4,10}","\\d{6,12}",,,"700123456"] ] ,"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"] @@ -3583,7 +3595,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"SE":[,[,,"\\d{7,10}","\\d{5,10}"] +,"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"] ,[,,"7[02-46]\\d{7}","\\d{9}",,,"701234567"] ,[,,"20\\d{4,7}","\\d{6,9}",,,"201234567"] @@ -3895,18 +3907,6 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"TF":[,[] -,[] -,[] -,[,,"NA","NA"] -,[,,"NA","NA"] -,[,,"NA","NA"] -,[,,"NA","NA"] -,[,,"NA","NA"] -,"TF",262,"00","0",,,"0",,,1,,,[,,"NA","NA"] -,,,[,,"NA","NA"] -,[,,"NA","NA"] -] ,"TG":[,[,,"[02-9]\\d{6,7}","\\d{7,8}"] ,[,,"2?(?:2[2-7]|3[23]|44|55|66|77)\\d{5}","\\d{7,8}",,,"22212345"] ,[,,"(?:0[1-9]|7[56]|8[1-7]|9\\d)\\d{5}|9[0-289]\\d{6}","\\d{7,8}",,,"90112345"] @@ -4057,7 +4057,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"444\\d{4}|850\\d{7}","\\d{7,10}",,,"4441444"] ] ,"TT":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"868(?:2(?:01|2[1-4])|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"] +,[,,"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"] ,[,,"868(?:29\\d|3(?:0[1-9]|1[02-9]|[2-9]\\d)|4(?:[679]\\d|8[0-4])|6(?:20|78|8\\d)|7(?:1[02-9]|[2-9]\\d))\\d{4}","\\d{10}",,,"8682911234"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002345678"] ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002345678"] @@ -4155,8 +4155,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"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[2-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[2-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-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"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002345678"] ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002345678"] ,[,,"NA","NA"] @@ -4245,8 +4245,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ] ,"VG":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"284(?:(?:229|4(?:46|9[45])|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})","\\d{7}(?:\\d{3})?",,,"2842291234"] -,[,,"284(?:(?:30[0-3]|4(?:4[0-5]|68|99)|54[0-4])\\d{4}|496[6-9]\\d{3})","\\d{10}",,,"2843001234"] +,[,,"284(?:(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})","\\d{7}(?:\\d{3})?",,,"2842291234"] +,[,,"284(?:(?:3(?:0[0-3]|4[0-367])|4(?:4[0-6]|68|99)|54[0-57])\\d{4}|496[6-9]\\d{3})","\\d{10}",,,"2843001234"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002345678"] ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002345678"] ,[,,"NA","NA"] @@ -4372,7 +4372,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"269|63",[,,"NA","NA"] ,[,,"NA","NA"] ] -,"ZA":[,[,,"\\d{9}","\\d{8,9}"] +,"ZA":[,[,,"[1-578]\\d{8}","\\d{8,9}"] ,[,,"(?:1[0-8]|2[1-478]|3[1-69]|4\\d|5[1346-8])\\d{7}","\\d{8,9}",,,"101234567"] ,[,,"(?:7[1-4689]|8[1-5789])\\d{7}","\\d{9}",,,"711234567"] ,[,,"80\\d{7}","\\d{9}",,,"801234567"] diff --git a/javascript/i18n/phonenumbers/metadatafortesting.js b/javascript/i18n/phonenumbers/metadatafortesting.js index 34f150b47..15bc81388 100644 --- a/javascript/i18n/phonenumbers/metadatafortesting.js +++ b/javascript/i18n/phonenumbers/metadatafortesting.js @@ -143,7 +143,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"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{3,8}","\\d{2,14}",,,"30123456"] +,[,,"(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}","\\d{2,14}",,,"30123456"] ,[,,"1(5\\d{9}|7\\d{8}|6[02]\\d{8}|63\\d{7})","\\d{10,11}"] ,[,,"800\\d{7}","\\d{10}"] ,[,,"900([135]\\d{6}|9\\d{7})","\\d{10,11}"] @@ -371,9 +371,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"US":[,[,,"[13-9]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890"] -,[,,"[13-9]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890"] -,[,,"[13-9]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890"] +,"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"] +,[,,"[13-689]\\d{9}|2[0-35-9]\\d{8}","\\d{7}(?:\\d{3})?",,,"1234567890"] ,[,,"8(?:00|66|77|88)\\d{7}","\\d{10}",,,"1234567890"] ,[,,"900\\d{7}","\\d{10}",,,"1234567890"] ,[,,"NA","NA"] diff --git a/javascript/i18n/phonenumbers/metadatalite.js b/javascript/i18n/phonenumbers/metadatalite.js index ba5affccb..b6da7fcac 100644 --- a/javascript/i18n/phonenumbers/metadatalite.js +++ b/javascript/i18n/phonenumbers/metadatalite.js @@ -122,7 +122,7 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = { ,258:["MZ"] ,260:["ZM"] ,261:["MG"] -,262:["RE","TF","YT"] +,262:["RE","YT"] ,263:["ZW"] ,264:["NA"] ,265:["MW"] @@ -404,11 +404,11 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"AR":[,[,,"[1-9]\\d{9,11}","\\d{6,12}"] -,[,,"[1-9]\\d{9}","\\d{6,10}"] -,[,,"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,12}"] -,[,,"80\\d{8}","\\d{10}"] -,[,,"6(?:0\\d|10)\\d{7}","\\d{10}"] +,"AR":[,[,,"[1-8]\\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}"] +,[,,"800\\d{7}","\\d{10}"] +,[,,"60[04579]\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -444,7 +444,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"810\\d{7}","\\d{10}"] ] ,"AS":[,[,,"[5689]\\d{9}","\\d{7}(?:\\d{3})?"] ,[,,"6846(?:22|33|44|55|77|88|9[19])\\d{4}","\\d{7}(?:\\d{3})?"] @@ -458,8 +458,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"684",[,,"NA","NA"] ,[,,"NA","NA"] ] -,"AT":[,[,,"\\d{4,13}","\\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]|8[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(?:1[27]|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}|5(?:0[1-9]|[79]\\d)\\d{2,10}|720\\d{6,10}","\\d{3,13}"] +,"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]|8[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}"] ,[,,"6(?:44|5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}","\\d{7,13}"] ,[,,"80[02]\\d{6,10}","\\d{9,13}"] ,[,,"(?:711|9(?:0[01]|3[019]))\\d{6,10}","\\d{9,13}"] @@ -475,30 +475,34 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"5(?:(?:0[1-9]|17)\\d{2,10}|[79]\\d{3,11})|720\\d{6,10}","\\d{5,13}"] ] ,"AU":[,[,,"[1-578]\\d{5,9}","\\d{6,10}"] ,[,,"[237]\\d{8}|8(?:[68]\\d{3}|7[1-4]\\d{2}|9(?:[02-9]\\d{2}|1(?:[0-57-9]\\d|6[0135-9])))\\d{4}","\\d{8,9}"] -,[,,"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}"] -,[,,"1(?:80(?:0\\d{2})?|3(?:00\\d{2})?)\\d{4}","\\d{6,10}"] -,[,,"190[0126]\\d{6}","\\d{10}"] -,[,,"NA","NA"] +,[,,"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}"] +,[,,"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}"] ,[,,"500\\d{6}","\\d{9}"] ,[,,"550\\d{6}","\\d{9}"] ,"AU",61,"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,"0",,"0011",,[[,"([2378])(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"] ,"(0$1)",""] -,[,"(4\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"] +,[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[45]|14"] ,"0$1",""] -,[,"(5[05]0)(\\d{3})(\\d{3})","$1 $2 $3",["5"] +,[,"(16)(\\d{3})(\\d{2,4})","$1 $2 $3",["16"] ,"0$1",""] -,[,"(1[389]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[38]0|9)","1(?:[38]00|9)"] +,[,"(1[389]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[38]0|90)","1(?:[38]00|90)"] ,"$1",""] -,[,"(180)(\\d{4})","$1 $2",["180","180[1-9]"] +,[,"(180)(2\\d{3})","$1 $2",["180","1802"] +,"$1",""] +,[,"(19\\d)(\\d{3})","$1 $2",["19[13]"] +,"$1",""] +,[,"(19\\d{2})(\\d{4})","$1 $2",["19[67]"] ,"$1",""] ,[,"(13)(\\d{2})(\\d{2})","$1 $2 $3",["13[1-9]"] ,"$1",""] ] -,,[,,"NA","NA"] +,,[,,"16\\d{3,7}","\\d{5,9}"] ,1,,[,,"NA","NA"] ,[,,"NA","NA"] ] @@ -529,20 +533,20 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"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}"] ] ,"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(?:16|2\\d|3[0-24]|4[1468]|55|6[56]|79)|365?\\d|44\\d{2})\\d{5}","\\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}"] ,[,,"(?:[46]0|5[015]|7[07])\\d{7}","\\d{9}"] ,[,,"88\\d{7}","\\d{9}"] ,[,,"900200\\d{3}","\\d{9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"AZ",994,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]"] +,"AZ",994,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["(?:1[28]|2(?:[45]2|[0-36])|365)"] ,"(0$1)",""] ,[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["22"] ,"(0$1)",""] -,[,"(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"] +,[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["36[0-46-9]"] ,"(0$1)",""] -,[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[013-79]|2[013-9]"] +,[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[013-79]|2(?:[45][13-9]|[7-9])"] ,"(0$1)",""] ,[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[4-8]"] ,"0$1",""] @@ -602,7 +606,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"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}"] -,[,,"4(?:7\\d|8[4-9]|9[1-9])\\d{6}","\\d{9}"] +,[,,"4(?:7\\d|8[3-9]|9[1-9])\\d{6}","\\d{9}"] ,[,,"800\\d{5}","\\d{8}"] ,[,,"(?:90|7[07])\\d{6}","\\d{8}"] ,[,,"87\\d{6}","\\d{8}"] @@ -623,7 +627,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"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}"] -,[,,"7(?:[024-6]\\d|1[0-4689]|3[0-6]|7[01]|8[013-9]|9[0-4])\\d{5}","\\d{8}"] +,[,,"7(?:[02-68]\\d|1[0-4689]|7[0-3]|9[0-6])\\d{5}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -664,7 +668,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"BH":[,[,,"[136-9]\\d{7}","\\d{8}"] ,[,,"(?:1(?:3[3-6]|6[0156]|7\\d)|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}"] -,[,,"(?:3(?:[369]\\d|77|8[38])|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}"] +,[,,"(?:3(?:[23469]\\d|77|8[38])|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}"] ,[,,"80\\d{6}","\\d{8}"] ,[,,"(?:87|9[014578])\\d{6}","\\d{8}"] ,[,,"84\\d{6}","\\d{8}"] @@ -826,21 +830,23 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"BY":[,[,,"[12-4]\\d{8}|[89]\\d{9}","\\d{7,10}"] +,"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}"] -,[,,"(?:2(?:5[679]|9[1-9])|33\\d|44\\d)\\d{6}","\\d{9}"] -,[,,"80[13]\\d{7}","\\d{10}"] -,[,,"902\\d{7}","\\d{10}"] +,[,,"(?:2(?:5[5679]|9[1-9])|33\\d|44\\d)\\d{6}","\\d{9}"] +,[,,"8(?:0[13]|20\\d)\\d{7}","\\d{10,11}"] +,[,,"(?:810|902)\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,"BY",375,"8~10","8",,,"80?",,,,[[,"([1-4]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[1-4]"] ,"8 0$1",""] -,[,"([89]\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"] +,[,"([89]\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8[01]|9"] +,"8 $1",""] +,[,"(8\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["82"] ,"8 $1",""] ] ,,[,,"NA","NA"] -,,,[,,"NA","NA"] +,,,[,,"8(?:[01]|20)\\d{8}|902\\d{7}","\\d{10,11}"] ,[,,"NA","NA"] ] ,"BZ":[,[,,"[2-8]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"] @@ -861,8 +867,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,1] ,"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]|[18]0|78)|8(?:[06]7|19|)|90[25])[2-9]\\d{6}|310\\d{4}","\\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]|[18]0|78)|8(?:[06]7|19|)|90[25])[2-9]\\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})?"] +,[,,"(?: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}","\\d{7}(?:\\d{3})?"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}|310\\d{4}","\\d{7}(?:\\d{3})?"] ,[,,"900[2-9]\\d{6}","\\d{10}"] ,[,,"NA","NA"] @@ -1022,7 +1028,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"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[159])|4[135]1|5(?:1\\d|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898)\\d{8}|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7[0-46-9]|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|[1579]\\d|2[248]|3[04-9]|4[3-6]|6[2368])|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}"] +,[,,"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|[1579]\\d|2[248]|3[04-9]|4[3-6]|6[2368])|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[025-9])\\d{8}","\\d{11}"] ,[,,"(?:10)?800\\d{7}","\\d{10,12}"] ,[,,"16[08]\\d{5}","\\d{8}"] @@ -1039,9 +1045,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,"0$1",""] ,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"] ,"0$1",""] -,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[159])|4[135]1|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898"] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"] ,"0$1",""] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7[0-46-9]|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] ,"0$1",""] ,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]"] ,"",""] @@ -1056,9 +1062,9 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"] ] -,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[159])|4[135]1|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898"] +,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"] ] -,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7[0-46-9]|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] +,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"] ] ,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]"] ] @@ -1077,7 +1083,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"CO",57,"00[579]|#555|#999","0",,,"0([3579]|4(?:44|56))",,,,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"] +,"CO",57,"00[579]|#555|#999","0",,,"0([3579]|4(?:44|56))?",,,,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"] ,"($1)","0$CC $1"] ,[,"(\\d{3})(\\d{7})","$1 $2",["3"] ,"","0$CC $1"] @@ -1095,15 +1101,15 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"CR":[,[,,"[2489]\\d{7,9}","\\d{8,10}"] +,"CR":[,[,,"[24589]\\d{7,9}","\\d{8,10}"] ,[,,"2[24-7]\\d{6}","\\d{8}"] -,[,,"8[36789]\\d{6}","\\d{8}"] +,[,,"57[01]\\d[01]\\d{3}|8[36789]\\d{6}","\\d{8}"] ,[,,"800\\d{7}","\\d{10}"] ,[,,"90[059]\\d{7}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,[,,"40[02]0\\d{4}","\\d{8}"] -,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]|8[3-9]"] +,[,,"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]"] ,"","$CC $1"] ,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]0"] ,"","$CC $1"] @@ -1830,7 +1836,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"HT":[,[,,"[2-489]\\d{7}","\\d{8}"] ,[,,"2(?:[24]\\d|5[1-5]|94)\\d{5}","\\d{8}"] -,[,,"(?:3[4-9]|4\\d)\\d{6}","\\d{8}"] +,[,,"(?:3[2-9]|4\\d)\\d{6}","\\d{8}"] ,[,,"8\\d{7}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -1842,7 +1848,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"HU":[,[,,"\\d{8,9}","\\d{6,9}"] +,"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}"] ,[,,"(?:[27]0|3[01])\\d{7}","\\d{9}"] ,[,,"80\\d{6}","\\d{8}"] @@ -2052,7 +2058,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"IT":[,[,,"[01389]\\d{5,10}","\\d{6,11}"] +,"IT":[,[,,"[0189]\\d{5,10}|3\\d{8,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}"] ,[,,"80(?:0\\d{6}|3\\d{3})","\\d{6,9}"] @@ -2178,32 +2184,34 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"KG":[,[,,"[356-8]\\d{8}","\\d{5,9}"] -,[,,"(?:3(?:1(?:2\\d|3[1-9]|52|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-8]|59|6\\d|7[5-7])|9(?:22|4[1-7]|6[0-8]))|6(?:09|12|2[2-4])\\d)\\d{5}","\\d{5,9}"] +,"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}"] ,[,,"5[124-7]\\d{7}|7(?:0[05]|7\\d)\\d{6}","\\d{9}"] -,[,,"800\\d{6}","\\d{9}"] +,[,,"800\\d{6,7}","\\d{9,10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"KG",996,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["31[25]|[5-8]"] +,"KG",996,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["31[25]|[5-7]"] ,"0$1",""] ,[,"(\\d{4})(\\d{5})","$1 $2",["3(?:1[36]|[2-9])"] ,"0$1",""] +,[,"(\\d{3})(\\d{3})(\\d)(\\d{3})","$1 $2 $3 $4",["8"] +,"0$1",""] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] ,"KH":[,[,,"[1-9]\\d{7,9}","\\d{6,10}"] -,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])[2-47-9]\\d{5}","\\d{6,8}"] -,[,,"(?:(?:1[0-35-9]|9[1-49])[1-9]|8(?:0[89]|5[2-689]))\\d{5}","\\d{8}"] -,[,,"1800(?:1\\d|2[09])\\d{4}","\\d{10}"] +,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[567][2-5])[2-46-9]\\d{5}","\\d{6,8}"] +,[,,"(?:(?:1[0-35-9]|6[6-9]|7[06-89]|9\\d)[1-9]|8(?:0[89]|5[2-689]|8\\d{2}|[1349]\\d|))\\d{5}","\\d{8,9}"] +,[,,"1800(?:1\\d|2[019])\\d{4}","\\d{10}"] ,[,,"1900(?:1\\d|2[09])\\d{4}","\\d{10}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"KH",855,"00[178]","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["1\\d[1-9]|[2-9]"] +,"KH",855,"00[178]","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["1\\d[1-9]|[2-9]"] ,"0$1",""] ,[,"(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3",["1[89]0"] ,"",""] @@ -2366,7 +2374,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ] ,"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[67]))\\d{5}","\\d{7,8}"] +,[,,"(?:3\\d|7(?:[01]\\d|6[167]))\\d{5}","\\d{7,8}"] ,[,,"NA","NA"] ,[,,"9[01]\\d{6}","\\d{8}"] ,[,,"8[01]\\d{6}","\\d{8}"] @@ -2374,7 +2382,7 @@ 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",""] -,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[67])"] +,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[167])"] ,"0$1",""] ] ,,[,,"NA","NA"] @@ -2401,14 +2409,14 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"90(?:0(?:2[278]|79|\\d{4})|1(?:23|\\d{4})|6(?:66|\\d{4}))\\d{2}","\\d{7,9}"] ,[,,"701\\d{4}","\\d{7}"] ,[,,"NA","NA"] -,"LI",423,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[23]|7[4-9]|87"] +,"LI",423,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[23]|7[4-9]|87"] ,"",""] ,[,"(6\\d)(\\d{3})(\\d{3})","$1 $2 $3",["6"] ,"",""] ,[,"([7-9]0\\d)(\\d{2})(\\d{2})","$1 $2 $3",["[7-9]0"] ,"",""] -,[,"([89]0\\d)(\\d{2})(\\d{2})(\\d{2})","0$1 $2 $3 $4",["[89]0"] -,"",""] +,[,"([89]0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[89]0"] +,"0$1",""] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] @@ -2602,7 +2610,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"8(?:03|14)\\d{5}","\\d{8}"] ] ,"ME":[,[,,"[2-9]\\d{7,8}","\\d{6,9}"] -,[,,"(?:20[2-8]|3(?:0[2-7]|1[35-7]|2[367]|3[4-7])|4(?:0[237]|1[2467])|5(?:0[47]|1[27]|2[378]))\\d{5}","\\d{6,8}"] +,[,,"(?: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}"] ,[,,"6(?:32\\d|[89]\\d{2}|7(?:[0-8]\\d|9(?:[3-9]|[0-2]\\d)))\\d{4}","\\d{8,9}"] ,[,,"800[28]\\d{4}","\\d{8}"] ,[,,"(?:88\\d|9(?:4[13-8]|5[16-8]))\\d{5}","\\d{8}"] @@ -2963,8 +2971,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ] ,"NC":[,[,,"[2-47-9]\\d{5}","\\d{6}"] -,[,,"(?:2[03-9]|35|4[1-7]|88)\\d{4}","\\d{6}"] -,[,,"(?:7[4-9]|8[0-79]|9\\d)\\d{4}","\\d{6}"] +,[,,"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}","\\d{6}"] +,[,,"(?:7[3-9]|8[0-79]|9\\d)\\d{4}","\\d{6}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -3460,26 +3468,30 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"RS":[,[,,"[1-46-9]\\d{4,11}","\\d{5,12}"] -,[,,"[1-3]\\d{6,9}","\\d{5,10}"] -,[,,"6[0-689]\\d{3,10}","\\d{5,12}"] -,[,,"800\\d{3,6}","\\d{6,9}"] -,[,,"(?:9[0-2]|42)\\d{4,7}","\\d{6,9}"] +,"RS":[,[,,"[1-36-9]\\d{4,11}","\\d{5,12}"] +,[,,"[1-3]\\d{6,11}","\\d{5,12}"] +,[,,"6(?:[0-689]|7\\d)\\d{6,7}","\\d{8,10}"] +,[,,"800\\d{3,9}","\\d{6,12}"] +,[,,"(?:90[0169]|78\\d)\\d{3,7}","\\d{6,12}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] -,"RS",381,"00","0",,,"0",,,,[[,"([23]\\d{2})(\\d{4,7})","$1 $2",["(?:2[389]|39)0"] +,"RS",381,"00","0",,,"0",,,,[[,"([23]\\d{2})(\\d{4,9})","$1 $2",["(?:2[389]|39)0"] +,"0$1",""] +,[,"([1-3]\\d)(\\d{5,10})","$1 $2",["1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])"] +,"0$1",""] +,[,"(6\\d)(\\d{6,8})","$1 $2",["6"] ,"0$1",""] -,[,"([1-4]\\d)(\\d{4,8})","$1 $2",["1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])|42"] +,[,"([89]\\d{2})(\\d{3,9})","$1 $2",["[89]"] ,"0$1",""] -,[,"(6[0-689])(\\d{3,10})","$1 $2",["6"] +,[,"(7[26])(\\d{4,9})","$1 $2",["7[26]"] ,"0$1",""] -,[,"([89]\\d{2})(\\d{3,6})","$1 $2",["[89]"] +,[,"(7[08]\\d)(\\d{4,9})","$1 $2",["7[08]"] ,"0$1",""] ] ,,[,,"NA","NA"] ,,,[,,"NA","NA"] -,[,,"NA","NA"] +,[,,"7[06]\\d{4,10}","\\d{6,12}"] ] ,"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}"] @@ -3583,7 +3595,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"SE":[,[,,"\\d{7,10}","\\d{5,10}"] +,"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}"] ,[,,"7[02-46]\\d{7}","\\d{9}"] ,[,,"20\\d{4,7}","\\d{6,9}"] @@ -3895,18 +3907,6 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"TF":[,[] -,[] -,[] -,[,,"NA","NA"] -,[,,"NA","NA"] -,[,,"NA","NA"] -,[,,"NA","NA"] -,[,,"NA","NA"] -,"TF",262,"00","0",,,"0",,,1,,,[,,"NA","NA"] -,,,[,,"NA","NA"] -,[,,"NA","NA"] -] ,"TG":[,[,,"[02-9]\\d{6,7}","\\d{7,8}"] ,[,,"2?(?:2[2-7]|3[23]|44|55|66|77)\\d{5}","\\d{7,8}"] ,[,,"(?:0[1-9]|7[56]|8[1-7]|9\\d)\\d{5}|9[0-289]\\d{6}","\\d{7,8}"] @@ -4057,7 +4057,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"444\\d{4}|850\\d{7}","\\d{7,10}"] ] ,"TT":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"868(?:2(?:01|2[1-4])|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})?"] +,[,,"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})?"] ,[,,"868(?:29\\d|3(?:0[1-9]|1[02-9]|[2-9]\\d)|4(?:[679]\\d|8[0-4])|6(?:20|78|8\\d)|7(?:1[02-9]|[2-9]\\d))\\d{4}","\\d{10}"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"] ,[,,"900[2-9]\\d{6}","\\d{10}"] @@ -4155,8 +4155,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"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[2-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[2-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-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})?"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"] ,[,,"900[2-9]\\d{6}","\\d{10}"] ,[,,"NA","NA"] @@ -4245,8 +4245,8 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,[,,"NA","NA"] ] ,"VG":[,[,,"[2589]\\d{9}","\\d{7}(?:\\d{3})?"] -,[,,"284(?:(?:229|4(?:46|9[45])|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})","\\d{7}(?:\\d{3})?"] -,[,,"284(?:(?:30[0-3]|4(?:4[0-5]|68|99)|54[0-4])\\d{4}|496[6-9]\\d{3})","\\d{10}"] +,[,,"284(?:(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})","\\d{7}(?:\\d{3})?"] +,[,,"284(?:(?:3(?:0[0-3]|4[0-367])|4(?:4[0-6]|68|99)|54[0-57])\\d{4}|496[6-9]\\d{3})","\\d{10}"] ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"] ,[,,"900[2-9]\\d{6}","\\d{10}"] ,[,,"NA","NA"] @@ -4372,7 +4372,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,"269|63",[,,"NA","NA"] ,[,,"NA","NA"] ] -,"ZA":[,[,,"\\d{9}","\\d{8,9}"] +,"ZA":[,[,,"[1-578]\\d{8}","\\d{8,9}"] ,[,,"(?:1[0-8]|2[1-478]|3[1-69]|4\\d|5[1346-8])\\d{7}","\\d{8,9}"] ,[,,"(?:7[1-4689]|8[1-5789])\\d{7}","\\d{9}"] ,[,,"80\\d{7}","\\d{9}"] diff --git a/javascript/i18n/phonenumbers/phonenumberutil.js b/javascript/i18n/phonenumbers/phonenumberutil.js index 3b7be7b6e..cb3be332a 100644 --- a/javascript/i18n/phonenumbers/phonenumberutil.js +++ b/javascript/i18n/phonenumbers/phonenumberutil.js @@ -475,8 +475,14 @@ i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ = '+\uFF0B'; /** - * This corresponds to the PLUS_CHARS_PATTERN in Java. - * + * @const + * @type {!RegExp} + */ +i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN = + new RegExp('[' + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ + ']+'); + + +/** * @const * @type {!RegExp} * @private @@ -498,9 +504,8 @@ i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_ = /** * @const * @type {!RegExp} - * @private */ -i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN_ = +i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN = new RegExp('([' + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + '])'); @@ -515,8 +520,9 @@ i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN_ = * * @const * @type {!RegExp} + * @private */ -i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN = +i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_ = new RegExp('[' + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + ']'); @@ -602,6 +608,9 @@ i18n.phonenumbers.PhoneNumberUtil.DEFAULT_EXTN_PREFIX_ = ' ext. '; /** + * Pattern to capture digits used in an extension. + * Places a maximum length of '7' for an extension. + * * @const * @type {string} * @private @@ -628,7 +637,7 @@ i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ = * @type {string} * @private */ -i18n.phonenumbers.PhoneNumberUtil.KNOWN_EXTN_PATTERNS_ = +i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ = i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_ + i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ + '|' + '[ \u00A0\\t,]*' + @@ -648,7 +657,8 @@ i18n.phonenumbers.PhoneNumberUtil.KNOWN_EXTN_PATTERNS_ = * @private */ i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_ = - new RegExp('(?:' + i18n.phonenumbers.PhoneNumberUtil.KNOWN_EXTN_PATTERNS_ + + new RegExp('(?:' + + i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ + ')$', 'i'); @@ -662,7 +672,8 @@ i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_ = */ i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_PATTERN_ = new RegExp('^' + i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_ + - '(?:' + i18n.phonenumbers.PhoneNumberUtil.KNOWN_EXTN_PATTERNS_ + + '(?:' + + i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ + ')?' + '$', 'i'); @@ -818,7 +829,7 @@ i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber = function(number) { /** @type {number} */ var start = number - .search(i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN); + .search(i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_); if (start >= 0) { possibleNumber = number.substring(start); // Remove trailing non-alpha non-numerical characters. @@ -2694,7 +2705,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.parsePrefixAsIdd_ = var matchEnd = numberStr.match(iddPattern)[0].length; /** @type {Array.} */ var matchedGroups = numberStr.substring(matchEnd).match( - i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN_); + i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN); if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) { /** @type {string} */ @@ -2787,7 +2798,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. if (numberLength == 0 || possibleNationalPrefix == null || possibleNationalPrefix.length == 0) { // Early return for numbers of zero length. - return carrierCode; + return ''; } // Attempt to parse the first digits as a national prefix. /** @type {!RegExp} */ @@ -2816,10 +2827,13 @@ i18n.phonenumbers.PhoneNumberUtil.prototype. } else { transformedNumber = numberStr.replace(prefixPattern, transformRule); } - // Check that the resultant number is viable. If not, return. - if (!i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_(nationalNumberRule, - transformedNumber)) { - return carrierCode; + // If the original number was viable, and the resultant number is not, + // we return. + if (i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_( + nationalNumberRule, numberStr) && + !i18n.phonenumbers.PhoneNumberUtil.matchesEntirely_( + nationalNumberRule, transformedNumber)) { + return ''; } if ((noTransform && numOfGroups > 0 && prefixMatcher[1] != null) || (!noTransform && numOfGroups > 1)) { @@ -3062,9 +3076,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.parseHelper_ = i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_FOR_NSN_) { throw i18n.phonenumbers.Error.TOO_LONG; } - if (normalizedNationalNumberStr.charAt(0) == '0' && - regionMetadata != null && - regionMetadata.getLeadingZeroPossibleOrDefault()) { + if (normalizedNationalNumberStr.charAt(0) == '0') { phoneNumber.setItalianLeadingZero(true); } phoneNumber.setNationalNumber(parseInt(normalizedNationalNumberStr, 10)); diff --git a/javascript/i18n/phonenumbers/phonenumberutil_test.js b/javascript/i18n/phonenumbers/phonenumberutil_test.js index 3268c55c7..b58e5a32d 100644 --- a/javascript/i18n/phonenumbers/phonenumberutil_test.js +++ b/javascript/i18n/phonenumbers/phonenumberutil_test.js @@ -217,7 +217,7 @@ function testGetInstanceLoadUSMetadata() { assertEquals('(\\d{3})(\\d{3})(\\d{4})', metadata.getNumberFormat(1).getPattern()); assertEquals('$1 $2 $3', metadata.getNumberFormat(1).getFormat()); - assertEquals('[13-9]\\d{9}|2[0-35-9]\\d{8}', + assertEquals('[13-689]\\d{9}|2[0-35-9]\\d{8}', metadata.getGeneralDesc().getNationalNumberPattern()); assertEquals('\\d{7}(?:\\d{3})?', metadata.getGeneralDesc().getPossibleNumberPattern()); @@ -244,7 +244,7 @@ function testGetInstanceLoadDEMetadata() { assertEquals('(\\d{3})(\\d{3,4})(\\d{4})', metadata.getNumberFormat(5).getPattern()); assertEquals('$1 $2 $3', metadata.getNumberFormat(5).getFormat()); - assertEquals('(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{3,8}', + assertEquals('(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}', metadata.getFixedLine().getNationalNumberPattern()); assertEquals('\\d{2,14}', metadata.getFixedLine().getPossibleNumberPattern()); assertEquals('30123456', metadata.getFixedLine().getExampleNumber()); @@ -2362,8 +2362,6 @@ function testIsNumberMatchNsnMatches() { // NSN matches. assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH, phoneUtil.isNumberMatch('+64 3 331-6005', '03 331 6005')); - assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH, - phoneUtil.isNumberMatch('3 331-6005', '03 331 6005')); assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH, phoneUtil.isNumberMatch(NZ_NUMBER, '03 331 6005')); // Here the second number possibly starts with the country calling code for @@ -2403,6 +2401,10 @@ function testIsNumberMatchShortNsnMatches() { // numbers. assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH, phoneUtil.isNumberMatch('+64 3 331-6005', '331 6005')); + // We did not know that the '0' was a national prefix since neither number has + // a country code, so this is considered a SHORT_NSN_MATCH. + assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH, + phoneUtil.isNumberMatch('3 331-6005', '03 331 6005')); assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH, phoneUtil.isNumberMatch('3 331-6005', '331 6005')); assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,