diff --git a/javascript/README b/javascript/README
index d8bfdfc11..09d9e46da 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 166).
+The JavaScript library is ported from the Java implementation (revision 171).
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 ae42cefcc..d02f0d217 100644
--- a/javascript/i18n/phonenumbers/asyoutypeformatter.js
+++ b/javascript/i18n/phonenumbers/asyoutypeformatter.js
@@ -19,11 +19,11 @@
* @fileoverview A formatter which formats phone numbers as they are entered.
* (based on the java implementation).
*
- *
An AsYouTypeFormatter could be created by new AsYouTypeFormatter(). After
- * that digits could be added by invoking {@link #inputDigit} on the formatter
+ *
An AsYouTypeFormatter can be created by new AsYouTypeFormatter(). After
+ * that, digits can be added by invoking {@link #inputDigit} on the formatter
* instance, and the partially formatted phone number will be returned each time
- * a digit is added. {@link #clear} could be invoked before a new number needs
- * to be formatted.
+ * a digit is added. {@link #clear} can be invoked before formatting a new
+ * number.
*
*
See the unittests for more details on how the formatter is to be used.
*
@@ -198,6 +198,22 @@ i18n.phonenumbers.AsYouTypeFormatter.STANDALONE_DIGIT_PATTERN_ =
/\d(?=[^,}][^,}])/g;
+/**
+ * A pattern that is used to determine if a numberFormat under availableFormats
+ * is eligible to be used by the AYTF. It is eligible when the format element
+ * under numberFormat contains groups of the dollar sign followed by a single
+ * digit, separated by valid phone number punctuation. This prevents invalid
+ * punctuation (such as the star sign in Israeli star numbers) getting into the
+ * output of the AYTF.
+ * @const
+ * @type {RegExp}
+ * @private
+ */
+i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_ = new RegExp(
+ '^[' + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + ']*' +
+ '(\\$\\d[' + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + ']*)+$');
+
+
/**
* This is the minimum length of national number accrued that is required to
* trigger the formatter. The first element of the leadingDigitsPattern of
@@ -268,14 +284,36 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ =
function(leadingThreeDigits) {
/** @type {Array.} */
- var formatList = (this.isInternationalFormatting_ && this.currentMetaData_
- .intlNumberFormatCount() > 0) ? this.currentMetaData_
- .intlNumberFormatArray() : this.currentMetaData_.numberFormatArray();
- this.possibleFormats_ = formatList;
+ var formatList =
+ (this.isInternationalFormatting_ &&
+ this.currentMetaData_.intlNumberFormatCount() > 0) ?
+ this.currentMetaData_.intlNumberFormatArray() :
+ this.currentMetaData_.numberFormatArray();
+ /** @type {number} */
+ var formatListLength = formatList.length;
+ for (var i = 0; i < formatListLength; ++i) {
+ /** @type {i18n.phonenumbers.NumberFormat} */
+ var format = formatList[i];
+ if (this.isFormatEligible_(format.getFormatOrDefault())) {
+ this.possibleFormats_.push(format);
+ }
+ }
this.narrowDownPossibleFormats_(leadingThreeDigits);
};
+/**
+ * @param {string} format
+ * @return {boolean}
+ * @private
+ */
+i18n.phonenumbers.AsYouTypeFormatter.prototype.isFormatEligible_ =
+ function(format) {
+ return i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_
+ .test(format);
+};
+
+
/**
* @param {string} leadingDigits
* @private
@@ -348,7 +386,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.createFormattingTemplate_ =
/**
- * Gets a formatting template which could be used to efficiently format a
+ * Gets a formatting template which can be used to efficiently format a
* partial number where digits are added one by one.
*
* @param {string} numberPattern
@@ -379,7 +417,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.getFormattingTemplate_ =
/**
- * Clears the internal state of the formatter, so it could be reused.
+ * Clears the internal state of the formatter, so it can be reused.
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.clear = function() {
this.currentOutput_ = '';
@@ -421,7 +459,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigit = function(nextChar) {
/**
* Same as {@link #inputDigit}, but remembers the position where
- * {@code nextChar} is inserted, so that it could be retrieved later by using
+ * {@code nextChar} is inserted, so that it can be retrieved later by using
* {@link #getRememberedPosition}. The remembered position will be automatically
* adjusted if additional formatting characters are later inserted/removed in
* front of {@code nextChar}.
diff --git a/javascript/i18n/phonenumbers/metadata.js b/javascript/i18n/phonenumbers/metadata.js
index 444098608..c6e640622 100644
--- a/javascript/i18n/phonenumbers/metadata.js
+++ b/javascript/i18n/phonenumbers/metadata.js
@@ -26,7 +26,7 @@ goog.provide('i18n.phonenumbers.metadata');
/**
* A mapping from a country calling code to the region codes which denote the
* region represented by that country calling code. In the case of multiple
- * countries sharing a calling code, such as the NANPA countries, the one
+ * countries sharing a calling code, such as the NANPA regions, the one
* indicated with "isMainCountryForCode" in the metadata should be first.
* @type {Object.>}
*/
@@ -352,16 +352,18 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"AM":[,[,,"[1-37-9]\\d{7}","\\d{5,8}"]
+,"AM":[,[,,"[1-36-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"]
-,[,,"(?:77|9[1-469])\\d{6}","\\d{8}",,,"77123456"]
+,[,,"(?:77|9[1-46-9])\\d{6}","\\d{8}",,,"77123456"]
,[,,"800\\d{5}","\\d{8}",,,"80012345"]
,[,,"90[016]\\d{5}","\\d{8}",,,"90012345"]
,[,,"80[1-4]\\d{5}","\\d{8}",,,"80112345"]
,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"AM",374,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[17]|9[1-469]"]
+,[,,"6027\\d{4}","\\d{8}",,,"60271234"]
+,"AM",374,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[17]|9[1-9]"]
,"(0$1)",""]
+,[,"(\\d{2})(\\d{6})","$1 $2",["6"]
+,"0$1",""]
,[,"(\\d{3})(\\d{5})","$1 $2",["[23]"]
,"(0$1)",""]
,[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["8|90"]
@@ -514,11 +516,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"AZ":[,[,,"[1-8]\\d{7,8}","\\d{5,9}"]
+,"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"]
,[,,"(?:[46]0|5[015]|7[07])\\d{7}","\\d{9}",,,"401234567"]
,[,,"88\\d{7}","\\d{9}",,,"881234567"]
-,[,,"NA","NA"]
+,[,,"900200\\d{3}","\\d{9}",,,"900200123"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -532,6 +534,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"(0$1)",""]
,[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[4-8]"]
,"0$1",""]
+,[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"]
+,"0$1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@@ -607,7 +611,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-489]|3[0124]|7[01]|8[013-9]|9[0-4])\\d{5}","\\d{8}",,,"70123456"]
+,[,,"7(?:[024-6]\\d|1[0-4689]|3[0-6]|7[01]|8[013-9]|9[0-4])\\d{5}","\\d{8}",,,"70123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -789,15 +793,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"BW":[,[,,"[2-9]\\d{6,7}","\\d{7,8}"]
+,"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"]
-,[,,"7(?:[1-3]\\d{6}|4[0-7]\\d{5})","\\d{8}",,,"71123456"]
-,[,,"8\\d{6}","\\d{7}",,,"8123456"]
-,[,,"90\\d{5}","\\d{7}",,,"9012345"]
+,[,,"7(?:[1-35]\\d{6}|[46][0-7]\\d{5})","\\d{8}",,,"71123456"]
,[,,"NA","NA"]
+,[,,"90\\d{5}","\\d{7}",,,"9012345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"BW",267,"00",,,,,,,,[[,"(7[1-4])(\\d{3})(\\d{3})","$1 $2 $3",["7"]
+,[,,"79[12][01]\\d{4}","\\d{8}",,,"79101234"]
+,"BW",267,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-6]"]
+,"",""]
+,[,"(7\\d)(\\d{3})(\\d{3})","$1 $2 $3",["7"]
,"",""]
,[,"(90)(\\d{5})","$1 $2",["9"]
,"",""]
@@ -825,7 +831,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"BZ":[,[,,"[2-8]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"]
,[,,"[234578][02]\\d{5}","\\d{7}",,,"2221234"]
-,[,,"6(?:[01]\\d|2[0-5]|[67][01])\\d{4}","\\d{7}",,,"6221234"]
+,[,,"6(?:[0-2]\\d|[67][01])\\d{4}","\\d{7}",,,"6221234"]
,[,,"0800\\d{7}","\\d{11}",,,"08001234123"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -919,7 +925,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"CI":[,[,,"[02-5]\\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]|50|6[067])\\d{6}","\\d{8}",,,"01234567"]
+,[,,"(?:0[1-9]|4[04-9]|5[07]|6[067])\\d{6}","\\d{8}",,,"01234567"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -1065,13 +1071,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"CR":[,[,,"[2489]\\d{7,9}","\\d{8,10}"]
,[,,"2[24-7]\\d{6}","\\d{8}",,,"22123456"]
-,[,,"8[389]\\d{6}","\\d{8}",,,"83123456"]
+,[,,"8(?:[389]\\d|7[0-3])\\d{5}","\\d{8}",,,"83123456"]
,[,,"800\\d{7}","\\d{10}",,,"8001234567"]
,[,,"90[059]\\d{7}","\\d{10}",,,"9001234567"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"4000\\d{4}","\\d{8}",,,"40001234"]
-,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]|8[389]"]
+,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]|8[3-9]"]
,"","$CC $1"]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]0"]
,"","$CC $1"]
@@ -1366,18 +1372,23 @@ 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{6,10}",,,"10112345"]
]
-,"FJ":[,[]
-,[]
-,[]
+,"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"]
+,[,,"(?:7[0-4]|9[29])\\d{5}","\\d{7}",,,"7012345"]
+,[,,"0800\\d{7}","\\d{11}",,,"08001234567"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"FJ",679,"00",,,,,,,1,,,[,,"NA","NA"]
+,"FJ",679,"0(?:0|52)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[36-9]"]
+,"",""]
+,[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]
+,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
-]
+,1]
,"FK":[,[,,"[2-7]\\d{4}","\\d{5}"]
,[,,"[2-47]\\d{4}","\\d{5}",,,"31234"]
,[,,"[56]\\d{4}","\\d{5}",,,"51234"]
@@ -1390,15 +1401,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"FM":[,[]
-,[]
-,[]
+,"FM":[,[,,"[39]\\d{6}","\\d{7}"]
+,[,,"3[2357]0[1-9]\\d{3}|9[2-6]\\d{5}","\\d{7}",,,"3201234"]
+,[,,"3[2357]0[1-9]\\d{3}|9[2-7]\\d{5}","\\d{7}",,,"3501234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"FM",691,"00",,,,,,,1,,,[,,"NA","NA"]
+,"FM",691,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -1452,7 +1465,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"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"]
-,[,,"7(?:[1-4]\\d\\d|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[04-9]\\d|1[02-9]|2[0135-9]|3[0-689]))\\d{6}","\\d{10}",,,"7400123456"]
+,[,,"7(?:[1-4]\\d\\d|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[04-9]\\d|1[02-9]|2[0-35-9]|3[0-689]))\\d{6}","\\d{10}",,,"7400123456"]
,[,,"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}","\\d{7}(?:\\d{2,3})?",,,"8001234567"]
,[,,"(?:87[123]|9(?:[01]\\d|8[0-3]))\\d{7}","\\d{10}",,,"9012345678"]
,[,,"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})","\\d{7}(?:\\d{3})?",,,"8431234567"]
@@ -1606,7 +1619,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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"]
-,[,,"690(?:00|[3-5]\\d|6[0-57-9]|7[1-6]|8[0-6]|9[09])\\d{4}","\\d{9}",,,"690301234"]
+,[,,"690(?:00|1[1-9]|2[013-5]|[3-5]\\d|6[0-57-9]|7[1-6]|8[0-6]|9[09])\\d{4}","\\d{9}",,,"690301234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -1697,15 +1710,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"GY":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
-,[,,"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"]
+,[,,"6\\d{6}","\\d{7}",,,"6091234"]
+,[,,"(?:289|862)\\d{4}","\\d{7}",,,"2891234"]
+,[,,"9008\\d{3}","\\d{7}",,,"9008123"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"GY",592,"001","0",,,"0",,,1,,,[,,"NA","NA"]
+,"GY",592,"001",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -1715,7 +1730,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"800\\d{6}","\\d{9}",,,"800123456"]
,[,,"900\\d{8}","\\d{11}",,,"90012345678"]
,[,,"NA","NA"]
-,[,,"8[1-3]\\d{6}","\\d{8}"]
+,[,,"8[1-3]\\d{6}","\\d{8}",,,"81123456"]
,[,,"NA","NA"]
,"HK",852,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[235-7]|[89](?:0[1-9]|[1-9])"]
,"",""]
@@ -2051,8 +2066,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"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"]
]
,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
-,[,,"876(?:(?:5[0-26]|6\\d|7[1-6]|9[2-8])\\d{5}|(?:7(?:0[2-689]|8[056]|9[45])|9(?:0[1-8]|1[02378]|9[2-468]))\\d{4})","\\d{7}(?:\\d{3})?",,,"8765123456"]
-,[,,"876(?:(?:21|[348]\\d|5[78]|77)\\d|7(?:0[07]|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}",,,"8762101234"]
+,[,,"876(?:(?:5[0-26]|6\\d)\\d{5}|(?: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"]
+,[,,"876(?:(?:2[178]|[348]\\d|5[78])\\d|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}",,,"8762101234"]
,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002123456"]
,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002123456"]
,[,,"NA","NA"]
@@ -2146,7 +2161,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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]|85[2-689])\\d{5}","\\d{8}",,,"91234567"]
+,[,,"(?:(?: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"]
,[,,"1900(?:1\\d|2[09])\\d{4}","\\d{10}",,,"1900123456"]
,[,,"NA","NA"]
@@ -2308,15 +2323,15 @@ 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|66))\\d{5}","\\d{7,8}",,,"71123456"]
+,[,,"(?:3\\d|7(?:[01]\\d|6[67]))\\d{5}","\\d{7,8}",,,"71123456"]
,[,,"NA","NA"]
-,[,,"8[01]\\d{6}","\\d{8}",,,"80123456"]
,[,,"9[01]\\d{6}","\\d{8}",,,"90123456"]
+,[,,"8[01]\\d{6}","\\d{8}",,,"80123456"]
,[,,"NA","NA"]
,[,,"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]|66)"]
+,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[67])"]
,"0$1",""]
]
,,[,,"NA","NA"]
@@ -2470,7 +2485,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"LY":[,[,,"[25679]\\d{8}","\\d{7,9}"]
,[,,"(?:2[1345]|5[1347]|6[123479]|71)\\d{7}","\\d{7,9}",,,"212345678"]
-,[,,"9[12356]\\d{7}","\\d{9}",,,"912345678"]
+,[,,"9[1-6]\\d{7}","\\d{9}",,,"912345678"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -2771,7 +2786,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MV":[,[,,"[367]\\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[36-9]|9[6-9])\\d{5}","\\d{7}",,,"7712345"]
+,[,,"(?:7[3-9]|9[6-9])\\d{5}","\\d{7}",,,"7712345"]
,[,,"NA","NA"]
,[,,"900\\d{7}","\\d{10}",,,"9001234567"]
,[,,"NA","NA"]
@@ -2927,15 +2942,20 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
,1]
-,"NF":[,[]
-,[]
-,[]
+,"NF":[,[,,"[13]\\d{5}","\\d{5,6}"]
+,[,,"(?:1(?:06|17|28|39)|3[012]\\d)\\d{3}","\\d{5,6}",,,"106609"]
+,[,,"38\\d{4}","\\d{5,6}",,,"381234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"NF",672,"00",,,,,,,1,,,[,,"NA","NA"]
+,"NF",672,"00",,,,,,,,[[,"(\\d{2})(\\d{4})","$1 $2",["1"]
+,"",""]
+,[,"(\\d)(\\d{5})","$1 $2",["3"]
+,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -2964,15 +2984,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"NI":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"NI":[,[,,"[128]\\d{7}","\\d{8}"]
+,[,,"2\\d{7}","\\d{8}",,,"21234567"]
+,[,,"8\\d{7}","\\d{8}",,,"81234567"]
+,[,,"1800\\d{4}","\\d{8}",,,"18001234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"NI",505,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"NI",505,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -3033,15 +3055,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"NR":[,[]
-,[]
-,[]
+,"NR":[,[,,"[458]\\d{6}","\\d{7}"]
+,[,,"(?:444|888)\\d{4}","\\d{7}",,,"4441234"]
+,[,,"55[5-9]\\d{4}","\\d{7}",,,"5551234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"NR",674,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"NR",674,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -3119,7 +3143,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"PE",51,"00","0"," Anexo ",,"0",,,,[[,"(1)(\\d{7})","$1 $2",["1"]
+,"PE",51,"19(?:1[124]|77|90)00","0"," Anexo ",,"0",,,,[[,"(1)(\\d{7})","$1 $2",["1"]
,"($1)",""]
,[,"([4-8]\\d)(\\d{6})","$1 $2",["[4-8]"]
,"($1)",""]
@@ -3188,7 +3212,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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"]
-,[,,"3(?:0\\d|1[2-5]|2[1-3]|3[1-6]|4[2-6]|64)\\d{7}","\\d{10}",,,"3012345678"]
+,[,,"3(?:0\\d|1[2-5]|2[1-3]|3[1-6]|4[2-7]|64)\\d{7}","\\d{10}",,,"3012345678"]
,[,,"800\\d{5}","\\d{8}",,,"80012345"]
,[,,"900\\d{5}","\\d{8}",,,"90012345"]
,[,,"NA","NA"]
@@ -3746,17 +3770,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"SZ":[,[,,"[02-7]\\d{6,7}","\\d{7,8}"]
-,[,,"2?(?:2(?:0[07]|[13]7|2[57])|3(?:0[34]|[1278]3|3[23]|[46][34])|(?:40[4-69]|16|2[12]|3[57]|[4578]2|67)|5(?:0[5-7]|1[6-9]|[23][78]|48|5[01]))\\d{4}","\\d{7,8}",,,"2171234"]
-,[,,"(?:6|7[6-8])\\d{6}","\\d{7,8}",,,"76123456"]
+,"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"]
+,[,,"7[6-8]\\d{6}","\\d{8}",,,"76123456"]
,[,,"0800\\d{4}","\\d{8}",,,"08001234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"SZ",268,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-6]"]
-,"",""]
-,[,"(\\d{4})(\\d{4})","$1 $2",["[027]"]
+,"SZ",268,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[027]"]
,"",""]
]
,,[,,"NA","NA"]
@@ -3836,22 +3858,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"TJ":[,[,,"[349]\\d{8}","\\d{3,9}"]
-,[,,"(?:3(?:1[3-5]|2[245]|31|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}","\\d{3,9}",,,"372123456"]
-,[,,"9[0-35-9]\\d{7}","\\d{9}",,,"917123456"]
+,"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"]
+,[,,"(?:505|9[0-35-9]\\d)\\d{6}","\\d{9}",,,"917123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"TJ",992,"8~10","8",,,"8",,,,[[,"([349]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"]
-,"8$1",""]
-,[,"([49]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[48]|9(?:19|[0235-9])"]
-,"8$1",""]
+,"(8) $1",""]
+,[,"([459]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[48]|5|9(?:19|[0235-9])"]
+,"(8) $1",""]
,[,"(331700)(\\d)(\\d{2})","$1 $2 $3",["331","3317","33170","331700"]
-,"8$1",""]
+,"(8) $1",""]
,[,"(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3[1-5]","3(?:[1245]|3(?:[02-9]|1[0-589]))"]
-,"8$1",""]
+,"(8) $1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@@ -3954,15 +3976,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,"868",[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"TV":[,[]
-,[]
-,[]
+,"TV":[,[,,"[29]\\d{4,5}","\\d{5,6}"]
+,[,,"2[02-9]\\d{3}","\\d{5}",,,"20123"]
+,[,,"90\\d{4}","\\d{6}",,,"901234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"TV",688,"00",,,,,,,1,,,[,,"NA","NA"]
+,"TV",688,"00",,,,,,,,,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -4041,8 +4063,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[014]|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[058]|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[014]|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[058]|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[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"]
,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002345678"]
,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002345678"]
,[,,"NA","NA"]
diff --git a/javascript/i18n/phonenumbers/metadatafortesting.js b/javascript/i18n/phonenumbers/metadatafortesting.js
index c1cbc829a..cd4c0aaed 100644
--- a/javascript/i18n/phonenumbers/metadatafortesting.js
+++ b/javascript/i18n/phonenumbers/metadatafortesting.js
@@ -26,7 +26,7 @@ goog.provide('i18n.phonenumbers.metadata');
/**
* A mapping from a country calling code to the region codes which denote the
* region represented by that country calling code. In the case of multiple
- * countries sharing a calling code, such as the NANPA countries, the one
+ * countries sharing a calling code, such as the NANPA regions, the one
* indicated with "isMainCountryForCode" in the metadata should be first.
* @type {Object.>}
*/
@@ -225,6 +225,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[23]"]
,"0$1",""]
+,[,"(\\d{4})","*$1",["[23]"]
+,"0$1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
diff --git a/javascript/i18n/phonenumbers/metadatalite.js b/javascript/i18n/phonenumbers/metadatalite.js
index bceb7d706..823758903 100644
--- a/javascript/i18n/phonenumbers/metadatalite.js
+++ b/javascript/i18n/phonenumbers/metadatalite.js
@@ -26,7 +26,7 @@ goog.provide('i18n.phonenumbers.metadata');
/**
* A mapping from a country calling code to the region codes which denote the
* region represented by that country calling code. In the case of multiple
- * countries sharing a calling code, such as the NANPA countries, the one
+ * countries sharing a calling code, such as the NANPA regions, the one
* indicated with "isMainCountryForCode" in the metadata should be first.
* @type {Object.>}
*/
@@ -352,16 +352,18 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"AM":[,[,,"[1-37-9]\\d{7}","\\d{5,8}"]
+,"AM":[,[,,"[1-36-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}"]
-,[,,"(?:77|9[1-469])\\d{6}","\\d{8}"]
+,[,,"(?:77|9[1-46-9])\\d{6}","\\d{8}"]
,[,,"800\\d{5}","\\d{8}"]
,[,,"90[016]\\d{5}","\\d{8}"]
,[,,"80[1-4]\\d{5}","\\d{8}"]
,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"AM",374,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[17]|9[1-469]"]
+,[,,"6027\\d{4}","\\d{8}"]
+,"AM",374,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[17]|9[1-9]"]
,"(0$1)",""]
+,[,"(\\d{2})(\\d{6})","$1 $2",["6"]
+,"0$1",""]
,[,"(\\d{3})(\\d{5})","$1 $2",["[23]"]
,"(0$1)",""]
,[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["8|90"]
@@ -514,11 +516,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"AZ":[,[,,"[1-8]\\d{7,8}","\\d{5,9}"]
+,"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}"]
,[,,"(?:[46]0|5[015]|7[07])\\d{7}","\\d{9}"]
,[,,"88\\d{7}","\\d{9}"]
-,[,,"NA","NA"]
+,[,,"900200\\d{3}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -532,6 +534,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"(0$1)",""]
,[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[4-8]"]
,"0$1",""]
+,[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"]
+,"0$1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@@ -607,7 +611,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-489]|3[0124]|7[01]|8[013-9]|9[0-4])\\d{5}","\\d{8}"]
+,[,,"7(?:[024-6]\\d|1[0-4689]|3[0-6]|7[01]|8[013-9]|9[0-4])\\d{5}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -789,15 +793,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"BW":[,[,,"[2-9]\\d{6,7}","\\d{7,8}"]
+,"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}"]
-,[,,"7(?:[1-3]\\d{6}|4[0-7]\\d{5})","\\d{8}"]
-,[,,"8\\d{6}","\\d{7}"]
-,[,,"90\\d{5}","\\d{7}"]
+,[,,"7(?:[1-35]\\d{6}|[46][0-7]\\d{5})","\\d{8}"]
,[,,"NA","NA"]
+,[,,"90\\d{5}","\\d{7}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"BW",267,"00",,,,,,,,[[,"(7[1-4])(\\d{3})(\\d{3})","$1 $2 $3",["7"]
+,[,,"79[12][01]\\d{4}","\\d{8}"]
+,"BW",267,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-6]"]
+,"",""]
+,[,"(7\\d)(\\d{3})(\\d{3})","$1 $2 $3",["7"]
,"",""]
,[,"(90)(\\d{5})","$1 $2",["9"]
,"",""]
@@ -825,7 +831,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"BZ":[,[,,"[2-8]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"]
,[,,"[234578][02]\\d{5}","\\d{7}"]
-,[,,"6(?:[01]\\d|2[0-5]|[67][01])\\d{4}","\\d{7}"]
+,[,,"6(?:[0-2]\\d|[67][01])\\d{4}","\\d{7}"]
,[,,"0800\\d{7}","\\d{11}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -919,7 +925,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"CI":[,[,,"[02-5]\\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]|50|6[067])\\d{6}","\\d{8}"]
+,[,,"(?:0[1-9]|4[04-9]|5[07]|6[067])\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -1065,13 +1071,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"CR":[,[,,"[2489]\\d{7,9}","\\d{8,10}"]
,[,,"2[24-7]\\d{6}","\\d{8}"]
-,[,,"8[389]\\d{6}","\\d{8}"]
+,[,,"8(?:[389]\\d|7[0-3])\\d{5}","\\d{8}"]
,[,,"800\\d{7}","\\d{10}"]
,[,,"90[059]\\d{7}","\\d{10}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"4000\\d{4}","\\d{8}"]
-,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]|8[389]"]
+,"CR",506,"00",,,,"(1900)",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]|8[3-9]"]
,"","$CC $1"]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]0"]
,"","$CC $1"]
@@ -1366,18 +1372,23 @@ 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{6,10}"]
]
-,"FJ":[,[]
-,[]
-,[]
-,[,,"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}"]
+,[,,"(?:7[0-4]|9[29])\\d{5}","\\d{7}"]
+,[,,"0800\\d{7}","\\d{11}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"FJ",679,"00",,,,,,,1,,,[,,"NA","NA"]
+,"FJ",679,"0(?:0|52)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[36-9]"]
+,"",""]
+,[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]
+,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
-]
+,1]
,"FK":[,[,,"[2-7]\\d{4}","\\d{5}"]
,[,,"[2-47]\\d{4}","\\d{5}"]
,[,,"[56]\\d{4}","\\d{5}"]
@@ -1390,15 +1401,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"FM":[,[]
-,[]
-,[]
+,"FM":[,[,,"[39]\\d{6}","\\d{7}"]
+,[,,"3[2357]0[1-9]\\d{3}|9[2-6]\\d{5}","\\d{7}"]
+,[,,"3[2357]0[1-9]\\d{3}|9[2-7]\\d{5}","\\d{7}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"FM",691,"00",,,,,,,1,,,[,,"NA","NA"]
+,"FM",691,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -1452,7 +1465,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"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}"]
-,[,,"7(?:[1-4]\\d\\d|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[04-9]\\d|1[02-9]|2[0135-9]|3[0-689]))\\d{6}","\\d{10}"]
+,[,,"7(?:[1-4]\\d\\d|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[04-9]\\d|1[02-9]|2[0-35-9]|3[0-689]))\\d{6}","\\d{10}"]
,[,,"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}","\\d{7}(?:\\d{2,3})?"]
,[,,"(?:87[123]|9(?:[01]\\d|8[0-3]))\\d{7}","\\d{10}"]
,[,,"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})","\\d{7}(?:\\d{3})?"]
@@ -1606,7 +1619,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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}"]
-,[,,"690(?:00|[3-5]\\d|6[0-57-9]|7[1-6]|8[0-6]|9[09])\\d{4}","\\d{9}"]
+,[,,"690(?:00|1[1-9]|2[013-5]|[3-5]\\d|6[0-57-9]|7[1-6]|8[0-6]|9[09])\\d{4}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -1697,15 +1710,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"GY":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
-,[,,"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}"]
+,[,,"6\\d{6}","\\d{7}"]
+,[,,"(?:289|862)\\d{4}","\\d{7}"]
+,[,,"9008\\d{3}","\\d{7}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"GY",592,"001","0",,,"0",,,1,,,[,,"NA","NA"]
+,"GY",592,"001",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -2051,8 +2066,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"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}"]
]
,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
-,[,,"876(?:(?:5[0-26]|6\\d|7[1-6]|9[2-8])\\d{5}|(?:7(?:0[2-689]|8[056]|9[45])|9(?:0[1-8]|1[02378]|9[2-468]))\\d{4})","\\d{7}(?:\\d{3})?"]
-,[,,"876(?:(?:21|[348]\\d|5[78]|77)\\d|7(?:0[07]|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}"]
+,[,,"876(?:(?:5[0-26]|6\\d)\\d{5}|(?: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})?"]
+,[,,"876(?:(?:2[178]|[348]\\d|5[78])\\d|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\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"]
@@ -2146,7 +2161,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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]|85[2-689])\\d{5}","\\d{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}"]
,[,,"1900(?:1\\d|2[09])\\d{4}","\\d{10}"]
,[,,"NA","NA"]
@@ -2308,15 +2323,15 @@ 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|66))\\d{5}","\\d{7,8}"]
+,[,,"(?:3\\d|7(?:[01]\\d|6[67]))\\d{5}","\\d{7,8}"]
,[,,"NA","NA"]
-,[,,"8[01]\\d{6}","\\d{8}"]
,[,,"9[01]\\d{6}","\\d{8}"]
+,[,,"8[01]\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"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]|66)"]
+,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[67])"]
,"0$1",""]
]
,,[,,"NA","NA"]
@@ -2470,7 +2485,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"LY":[,[,,"[25679]\\d{8}","\\d{7,9}"]
,[,,"(?:2[1345]|5[1347]|6[123479]|71)\\d{7}","\\d{7,9}"]
-,[,,"9[12356]\\d{7}","\\d{9}"]
+,[,,"9[1-6]\\d{7}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@@ -2771,7 +2786,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MV":[,[,,"[367]\\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[36-9]|9[6-9])\\d{5}","\\d{7}"]
+,[,,"(?:7[3-9]|9[6-9])\\d{5}","\\d{7}"]
,[,,"NA","NA"]
,[,,"900\\d{7}","\\d{10}"]
,[,,"NA","NA"]
@@ -2927,15 +2942,20 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
,1]
-,"NF":[,[]
-,[]
-,[]
+,"NF":[,[,,"[13]\\d{5}","\\d{5,6}"]
+,[,,"(?:1(?:06|17|28|39)|3[012]\\d)\\d{3}","\\d{5,6}"]
+,[,,"38\\d{4}","\\d{5,6}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"NF",672,"00",,,,,,,1,,,[,,"NA","NA"]
+,"NF",672,"00",,,,,,,,[[,"(\\d{2})(\\d{4})","$1 $2",["1"]
+,"",""]
+,[,"(\\d)(\\d{5})","$1 $2",["3"]
+,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -2964,15 +2984,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"NI":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"NI":[,[,,"[128]\\d{7}","\\d{8}"]
+,[,,"2\\d{7}","\\d{8}"]
+,[,,"8\\d{7}","\\d{8}"]
+,[,,"1800\\d{4}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"NI",505,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"NI",505,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -3033,15 +3055,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"NR":[,[]
-,[]
-,[]
+,"NR":[,[,,"[458]\\d{6}","\\d{7}"]
+,[,,"(?:444|888)\\d{4}","\\d{7}"]
+,[,,"55[5-9]\\d{4}","\\d{7}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"NR",674,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"NR",674,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -3119,7 +3143,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"PE",51,"00","0"," Anexo ",,"0",,,,[[,"(1)(\\d{7})","$1 $2",["1"]
+,"PE",51,"19(?:1[124]|77|90)00","0"," Anexo ",,"0",,,,[[,"(1)(\\d{7})","$1 $2",["1"]
,"($1)",""]
,[,"([4-8]\\d)(\\d{6})","$1 $2",["[4-8]"]
,"($1)",""]
@@ -3188,7 +3212,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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}"]
-,[,,"3(?:0\\d|1[2-5]|2[1-3]|3[1-6]|4[2-6]|64)\\d{7}","\\d{10}"]
+,[,,"3(?:0\\d|1[2-5]|2[1-3]|3[1-6]|4[2-7]|64)\\d{7}","\\d{10}"]
,[,,"800\\d{5}","\\d{8}"]
,[,,"900\\d{5}","\\d{8}"]
,[,,"NA","NA"]
@@ -3746,17 +3770,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"SZ":[,[,,"[02-7]\\d{6,7}","\\d{7,8}"]
-,[,,"2?(?:2(?:0[07]|[13]7|2[57])|3(?:0[34]|[1278]3|3[23]|[46][34])|(?:40[4-69]|16|2[12]|3[57]|[4578]2|67)|5(?:0[5-7]|1[6-9]|[23][78]|48|5[01]))\\d{4}","\\d{7,8}"]
-,[,,"(?:6|7[6-8])\\d{6}","\\d{7,8}"]
+,"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}"]
+,[,,"7[6-8]\\d{6}","\\d{8}"]
,[,,"0800\\d{4}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"SZ",268,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-6]"]
-,"",""]
-,[,"(\\d{4})(\\d{4})","$1 $2",["[027]"]
+,"SZ",268,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[027]"]
,"",""]
]
,,[,,"NA","NA"]
@@ -3836,22 +3858,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"TJ":[,[,,"[349]\\d{8}","\\d{3,9}"]
-,[,,"(?:3(?:1[3-5]|2[245]|31|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}","\\d{3,9}"]
-,[,,"9[0-35-9]\\d{7}","\\d{9}"]
+,"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}"]
+,[,,"(?:505|9[0-35-9]\\d)\\d{6}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"TJ",992,"8~10","8",,,"8",,,,[[,"([349]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"]
-,"8$1",""]
-,[,"([49]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[48]|9(?:19|[0235-9])"]
-,"8$1",""]
+,"(8) $1",""]
+,[,"([459]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[48]|5|9(?:19|[0235-9])"]
+,"(8) $1",""]
,[,"(331700)(\\d)(\\d{2})","$1 $2 $3",["331","3317","33170","331700"]
-,"8$1",""]
+,"(8) $1",""]
,[,"(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3[1-5]","3(?:[1245]|3(?:[02-9]|1[0-589]))"]
-,"8$1",""]
+,"(8) $1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@@ -3954,15 +3976,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,"868",[,,"NA","NA"]
,[,,"NA","NA"]
]
-,"TV":[,[]
-,[]
-,[]
+,"TV":[,[,,"[29]\\d{4,5}","\\d{5,6}"]
+,[,,"2[02-9]\\d{3}","\\d{5}"]
+,[,,"90\\d{4}","\\d{6}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
-,"TV",688,"00",,,,,,,1,,,[,,"NA","NA"]
+,"TV",688,"00",,,,,,,,,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
@@ -4041,8 +4063,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[014]|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[058]|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[014]|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[058]|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[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})?"]
,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"]
,[,,"900[2-9]\\d{6}","\\d{10}"]
,[,,"NA","NA"]
diff --git a/javascript/i18n/phonenumbers/phonenumberutil.js b/javascript/i18n/phonenumbers/phonenumberutil.js
index 316cb8884..f3d705192 100644
--- a/javascript/i18n/phonenumbers/phonenumberutil.js
+++ b/javascript/i18n/phonenumbers/phonenumberutil.js
@@ -427,9 +427,8 @@ i18n.phonenumbers.PhoneNumberUtil.UNIQUE_INTERNATIONAL_PREFIX_ =
*
* @const
* @type {string}
- * @private
*/
-i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION_ =
+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION =
'-x\u2010-\u2015\u2212\u30FC\uFF0D-\uFF0F \u00A0\u200B\u2060\u3000()' +
'\uFF08\uFF09\uFF3B\uFF3D.\\[\\]/~\u2053\u223C\uFF5E';
@@ -480,7 +479,7 @@ i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN_ =
* @private
*/
i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_ =
- new RegExp('[' + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION_ +
+ new RegExp('[' + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION +
']+', 'g');
@@ -569,9 +568,9 @@ i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_ =
*/
i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_ =
'[' + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ + ']*(?:[' +
- i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION_ + ']*[' +
+ i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + ']*[' +
i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + ']){3,}[' +
- i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION_ +
+ i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION +
i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_ +
i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + ']*';
@@ -782,9 +781,9 @@ i18n.phonenumbers.PhoneNumberUtil.ValidationResult = {
/**
* Attempts to extract a possible number from the string passed in. This
- * currently strips all leading characters that could not be used to start a
- * phone number. Characters that can be used to start a phone number are defined
- * in the VALID_START_CHAR_PATTERN. If none of these characters are found in the
+ * currently strips all leading characters that cannot be used to start a phone
+ * number. Characters that can be used to start a phone number are defined in
+ * the VALID_START_CHAR_PATTERN. If none of these characters are found in the
* number passed in, an empty string is returned. This function also attempts to
* strip off any alternative extensions or endings if two or more are present,
* such as in the case of: (530) 583-6985 x302/x2303. The second extension here
@@ -1356,7 +1355,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.
/**
* Formats a phone number for out-of-country dialing purposes. If no
* regionCallingFrom is supplied, we format the number in its INTERNATIONAL
- * format. If the regionCallingFrom is the same as the region where the
+ * format. If the country calling code is the same as the region where the
* number is from, then NATIONAL formatting will be applied.
*
* If the number itself has a country calling code of zero or an otherwise
@@ -2439,12 +2438,12 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberWithReason =
* denotes the region that we are expecting the number to be dialed from.
* Note this is different from the region where the number belongs.
* For example, the number +1 650 253 0000 is a number that belongs to US.
- * When written in this form, it could be dialed from any region. When it
- * is written as 00 1 650 253 0000, it could be dialed from any region
- * which uses an international dialling prefix of 00. When it is written as
- * 650 253 0000, it could only be dialed from within the US, and when
- * written as 253 0000, it could only be dialed from within a smaller area
- * in the US (Mountain View, CA, to be more specific).
+ * When written in this form, it can be dialed from any region. When it is
+ * written as 00 1 650 253 0000, it can be dialed from any region which uses
+ * an international dialling prefix of 00. When it is written as
+ * 650 253 0000, it can only be dialed from within the US, and when written
+ * as 253 0000, it can only be dialed from within a smaller area in the US
+ * (Mountain View, CA, to be more specific).
* @return {boolean} true if the number is possible.
*/
i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberString =