Browse Source

JS: libphonenumber 3.9

pull/567/head
Nikolaos Trogkanis 14 years ago
committed by Mihaela Rosca
parent
commit
e2407a6b7f
11 changed files with 617 additions and 260 deletions
  1. +1
    -1
      javascript/README
  2. +103
    -17
      javascript/i18n/phonenumbers/asyoutypeformatter.js
  3. +1
    -0
      javascript/i18n/phonenumbers/asyoutypeformatter_test.html
  4. +162
    -18
      javascript/i18n/phonenumbers/asyoutypeformatter_test.js
  5. +105
    -94
      javascript/i18n/phonenumbers/metadata.js
  6. +5
    -5
      javascript/i18n/phonenumbers/metadatafortesting.js
  7. +105
    -94
      javascript/i18n/phonenumbers/metadatalite.js
  8. +33
    -2
      javascript/i18n/phonenumbers/phonenumberutil.js
  9. +1
    -0
      javascript/i18n/phonenumbers/phonenumberutil_test.html
  10. +47
    -29
      javascript/i18n/phonenumbers/phonenumberutil_test.js
  11. +54
    -0
      javascript/i18n/phonenumbers/regioncodefortesting.js

+ 1
- 1
javascript/README View File

@ -25,7 +25,7 @@ pages with your web browser:
How to update:
==============
The JavaScript library is ported from the Java implementation (revision 325).
The JavaScript library is ported from the Java implementation (revision 348).
When the Java project gets updated follow these steps to update the JavaScript
project:


+ 103
- 17
javascript/i18n/phonenumbers/asyoutypeformatter.js View File

@ -93,10 +93,19 @@ i18n.phonenumbers.AsYouTypeFormatter = function(regionCode) {
*/
this.accruedInputWithoutFormatting_ = new goog.string.StringBuffer();
/**
* This indicates whether AsYouTypeFormatter is currently doing the
* formatting.
* @type {boolean}
* @private
*/
this.ableToFormat_ = true;
/**
* Set to true when users enter their own formatting. AsYouTypeFormatter will
* do no formatting at all when this is set to true.
* @type {boolean}
* @private
*/
this.inputHasFormatting_ = false;
/**
* @type {boolean}
* @private
@ -134,10 +143,20 @@ i18n.phonenumbers.AsYouTypeFormatter = function(regionCode) {
*/
this.positionToRemember_ = 0;
/**
* This contains anything that has been entered so far preceding the national
* significant number, and it is formatted (e.g. with space inserted). For
* example, this can contain IDD, country code, and/or NDD, etc.
* @type {!goog.string.StringBuffer}
* @private
*/
this.prefixBeforeNationalNumber_ = new goog.string.StringBuffer();
/**
* This contains the national prefix that has been extracted. It contains only
* digits without formatting.
* @type {string}
* @private
*/
this.nationalPrefixExtracted_ = '';
/**
* @type {!goog.string.StringBuffer}
* @private
@ -276,6 +295,9 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.maybeCreateNewTemplate_ =
}
if (this.createFormattingTemplate_(numberFormat)) {
this.currentFormattingPattern_ = pattern;
// With a new formatting template, the matched position using the old
// template needs to be reset.
this.lastMatchPosition_ = 0;
return true;
}
}
@ -440,8 +462,10 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.clear = function() {
this.lastMatchPosition_ = 0;
this.currentFormattingPattern_ = '';
this.prefixBeforeNationalNumber_.clear();
this.nationalPrefixExtracted_ = '';
this.nationalNumber_.clear();
this.ableToFormat_ = true;
this.inputHasFormatting_ = false;
this.positionToRemember_ = 0;
this.originalPosition_ = 0;
this.isInternationalFormatting_ = false;
@ -507,14 +531,31 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
// digit, or a plus sign (accepted at the start of the number only).
if (!this.isDigitOrLeadingPlusSign_(nextChar)) {
this.ableToFormat_ = false;
this.inputHasFormatting_ = true;
} else {
nextChar = this.normalizeAndAccrueDigitsAndPlusSign_(nextChar,
rememberPosition);
}
if (!this.ableToFormat_) {
// When we are unable to format because of reasons other than that
// formatting chars have been entered, it can be due to really long IDDs or
// NDDs. If that is the case, we might be able to do formatting again after
// extracting them.
if (this.inputHasFormatting_) {
return this.accruedInput_.toString();
} else if (this.attemptToExtractIdd_()) {
if (this.attemptToExtractCountryCallingCode_()) {
return this.attemptToChoosePatternWithPrefixExtracted_();
}
} else if (this.ableToExtractLongerNdd_()) {
// Add an additional space to separate long NDD and national significant
// number for readability.
this.prefixBeforeNationalNumber_.append(' ');
return this.attemptToChoosePatternWithPrefixExtracted_();
}
return this.accruedInput_.toString();
}
nextChar = this.normalizeAndAccrueDigitsAndPlusSign_(nextChar,
rememberPosition);
// We start to attempt to format only when at least MIN_LEADING_DIGITS_LENGTH
// digits (the plus sign is counted as a digit as well for this purpose) have
// been entered.
@ -527,12 +568,12 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
if (this.attemptToExtractIdd_()) {
this.isExpectingCountryCallingCode_ = true;
} else {
// No IDD or plus sign is found, must be entering in national format.
this.removeNationalPrefixFromNationalNumber_();
// No IDD or plus sign is found, might be entering in national format.
this.nationalPrefixExtracted_ =
this.removeNationalPrefixFromNationalNumber_();
return this.attemptToChooseFormattingPattern_();
}
case 4:
case 5:
default:
if (this.isExpectingCountryCallingCode_) {
if (this.attemptToExtractCountryCallingCode_()) {
this.isExpectingCountryCallingCode_ = false;
@ -540,15 +581,6 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
return this.prefixBeforeNationalNumber_.toString() +
this.nationalNumber_.toString();
}
// We make a last attempt to extract a country calling code at the 6th digit
// because the maximum length of IDD and country calling code are both 3.
case 6:
if (this.isExpectingCountryCallingCode_ &&
!this.attemptToExtractCountryCallingCode_()) {
this.ableToFormat_ = false;
return this.accruedInput_.toString();
}
default:
if (this.possibleFormats_.length > 0) {
// The formatting pattern is already chosen.
/** @type {string} */
@ -575,6 +607,55 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
};
/**
* @return {string}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.
attemptToChoosePatternWithPrefixExtracted_ = function() {
this.ableToFormat_ = true;
this.isExpectingCountryCallingCode_ = false;
this.possibleFormats_ = [];
return this.attemptToChooseFormattingPattern_();
};
/**
* Some national prefixes are a substring of others. If extracting the shorter
* NDD doesn't result in a number we can format, we try to see if we can extract
* a longer version here.
* @return {boolean}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.ableToExtractLongerNdd_ =
function() {
if (this.nationalPrefixExtracted_.length > 0) {
// Put the extracted NDD back to the national number before attempting to
// extract a new NDD.
/** @type {string} */
var nationalNumberStr = this.nationalNumber_.toString();
this.nationalNumber_.clear();
this.nationalNumber_.append(this.nationalPrefixExtracted_);
this.nationalNumber_.append(nationalNumberStr);
// Remove the previously extracted NDD from prefixBeforeNationalNumber. We
// cannot simply set it to empty string because people sometimes enter
// national prefix after country code, e.g +44 (0)20-1234-5678.
/** @type {string} */
var prefixBeforeNationalNumberStr =
this.prefixBeforeNationalNumber_.toString();
/** @type {number} */
var indexOfPreviousNdd = prefixBeforeNationalNumberStr.lastIndexOf(
this.nationalPrefixExtracted_);
this.prefixBeforeNationalNumber_.clear();
this.prefixBeforeNationalNumber_.append(
prefixBeforeNationalNumberStr.substring(0, indexOfPreviousNdd));
}
return this.nationalPrefixExtracted_ !=
this.removeNationalPrefixFromNationalNumber_();
};
/**
* @param {string} nextChar
* @return {boolean}
@ -710,6 +791,9 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.inputAccruedNationalNumber_ =
/**
* Returns the national prefix extracted, or an empty string if it is not
* present.
* @return {string}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.
@ -724,7 +808,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
startOfNationalNumber = 1;
this.prefixBeforeNationalNumber_.append('1 ');
this.isInternationalFormatting_ = true;
} else if (this.currentMetaData_.hasNationalPrefix()) {
} else if (this.currentMetaData_.hasNationalPrefixForParsing()) {
/** @type {RegExp} */
var nationalPrefixForParsing = new RegExp(
'^(?:' + this.currentMetaData_.getNationalPrefixForParsing() + ')');
@ -742,6 +826,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
}
this.nationalNumber_.clear();
this.nationalNumber_.append(nationalNumber.substring(startOfNationalNumber));
return nationalNumber.substring(0, startOfNationalNumber);
};
@ -772,6 +857,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractIdd_ =
this.nationalNumber_.clear();
this.nationalNumber_.append(
accruedInputWithoutFormatting.substring(startOfCountryCallingCode));
this.prefixBeforeNationalNumber_.clear();
this.prefixBeforeNationalNumber_.append(
accruedInputWithoutFormatting.substring(0, startOfCountryCallingCode));
if (accruedInputWithoutFormatting.charAt(0) !=


+ 1
- 0
javascript/i18n/phonenumbers/asyoutypeformatter_test.html View File

@ -28,6 +28,7 @@ limitations under the License.
<script src="phonemetadata.pb.js"></script>
<script src="phonenumber.pb.js"></script>
<script src="metadatafortesting.js"></script>
<script src="regioncodefortesting.js"></script>
<script src="phonenumberutil.js"></script>
<script src="asyoutypeformatter.js"></script>
<script src="asyoutypeformatter_test.js"></script>


+ 162
- 18
javascript/i18n/phonenumbers/asyoutypeformatter_test.js View File

@ -18,15 +18,22 @@
/**
* @fileoverview Unit tests for the AsYouTypeFormatter.
*
* Note that these tests use the metadata contained in metadatafortesting.js,
* not the normal metadata files, so should not be used for regression test
* purposes - these tests are illustrative only and test functionality.
*
* @author Nikolaos Trogkanis
*/
goog.require('goog.testing.jsunit');
goog.require('i18n.phonenumbers.AsYouTypeFormatter');
goog.require('i18n.phonenumbers.RegionCode');
var RegionCode = i18n.phonenumbers.RegionCode;
function testInvalidRegion() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('ZZ');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.ZZ);
assertEquals('+', f.inputDigit('+'));
assertEquals('+4', f.inputDigit('4'));
assertEquals('+48 ', f.inputDigit('8'));
@ -49,7 +56,7 @@ function testInvalidRegion() {
function testInvalidPlusSign() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('ZZ');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.ZZ);
assertEquals('+', f.inputDigit('+'));
assertEquals('+4', f.inputDigit('4'));
assertEquals('+48 ', f.inputDigit('8'));
@ -70,7 +77,7 @@ function testTooLongNumberMatchingMultipleLeadingDigits() {
// The bug occurred last time for countries which have two formatting rules
// with exactly the same leading digits pattern but differ in length.
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('ZZ');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.ZZ);
assertEquals('+', f.inputDigit('+'));
assertEquals('+8', f.inputDigit('8'));
assertEquals('+81 ', f.inputDigit('1'));
@ -90,7 +97,7 @@ function testTooLongNumberMatchingMultipleLeadingDigits() {
function testAYTFUS() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('US');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US);
assertEquals('6', f.inputDigit('6'));
assertEquals('65', f.inputDigit('5'));
assertEquals('650', f.inputDigit('0'));
@ -185,7 +192,7 @@ function testAYTFUS() {
function testAYTFUSFullWidthCharacters() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('US');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US);
assertEquals('\uFF16', f.inputDigit('\uFF16'));
assertEquals('\uFF16\uFF15', f.inputDigit('\uFF15'));
assertEquals('650', f.inputDigit('\uFF10'));
@ -200,7 +207,7 @@ function testAYTFUSFullWidthCharacters() {
function testAYTFUSMobileShortCode() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('US');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US);
assertEquals('*', f.inputDigit('*'));
assertEquals('*1', f.inputDigit('1'));
assertEquals('*12', f.inputDigit('2'));
@ -210,7 +217,7 @@ function testAYTFUSMobileShortCode() {
function testAYTFUSVanityNumber() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('US');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US);
assertEquals('8', f.inputDigit('8'));
assertEquals('80', f.inputDigit('0'));
assertEquals('800', f.inputDigit('0'));
@ -227,7 +234,7 @@ function testAYTFUSVanityNumber() {
function testAYTFAndRememberPositionUS() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('US');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US);
assertEquals('1', f.inputDigitAndRememberPosition('1'));
assertEquals(1, f.getRememberedPosition());
assertEquals('16', f.inputDigit('6'));
@ -364,7 +371,7 @@ function testAYTFAndRememberPositionUS() {
function testAYTFGBFixedLine() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('GB');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.GB);
assertEquals('0', f.inputDigit('0'));
assertEquals('02', f.inputDigit('2'));
assertEquals('020', f.inputDigit('0'));
@ -382,7 +389,7 @@ function testAYTFGBFixedLine() {
function testAYTFGBTollFree() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('GB');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.GB);
assertEquals('0', f.inputDigit('0'));
assertEquals('08', f.inputDigit('8'));
assertEquals('080', f.inputDigit('0'));
@ -398,7 +405,7 @@ function testAYTFGBTollFree() {
function testAYTFGBPremiumRate() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('GB');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.GB);
assertEquals('0', f.inputDigit('0'));
assertEquals('09', f.inputDigit('9'));
assertEquals('090', f.inputDigit('0'));
@ -414,7 +421,7 @@ function testAYTFGBPremiumRate() {
function testAYTFNZMobile() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('NZ');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.NZ);
assertEquals('0', f.inputDigit('0'));
assertEquals('02', f.inputDigit('2'));
assertEquals('021', f.inputDigit('1'));
@ -430,7 +437,7 @@ function testAYTFNZMobile() {
function testAYTFDE() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('DE');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.DE);
assertEquals('0', f.inputDigit('0'));
assertEquals('03', f.inputDigit('3'));
assertEquals('030', f.inputDigit('0'));
@ -482,7 +489,7 @@ function testAYTFDE() {
function testAYTFAR() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('AR');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.AR);
assertEquals('0', f.inputDigit('0'));
assertEquals('01', f.inputDigit('1'));
assertEquals('011', f.inputDigit('1'));
@ -498,7 +505,7 @@ function testAYTFAR() {
function testAYTFARMobile() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('AR');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.AR);
assertEquals('+', f.inputDigit('+'));
assertEquals('+5', f.inputDigit('5'));
assertEquals('+54 ', f.inputDigit('4'));
@ -518,7 +525,7 @@ function testAYTFARMobile() {
function testAYTFKR() {
// +82 51 234 5678
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('KR');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.KR);
assertEquals('+', f.inputDigit('+'));
assertEquals('+8', f.inputDigit('8'));
assertEquals('+82 ', f.inputDigit('2'));
@ -608,7 +615,7 @@ function testAYTFKR() {
function testAYTF_MX() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('MX');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.MX);
// +52 800 123 4567
assertEquals('+', f.inputDigit('+'));
@ -695,7 +702,7 @@ function testAYTF_MX() {
function testAYTFMultipleLeadingDigitPatterns() {
// +81 50 2345 6789
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('JP');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.JP);
assertEquals('+', f.inputDigit('+'));
assertEquals('+8', f.inputDigit('8'));
assertEquals('+81 ', f.inputDigit('1'));
@ -740,3 +747,140 @@ function testAYTFMultipleLeadingDigitPatterns() {
assertEquals('+81 3332 2 567', f.inputDigit('7'));
assertEquals('+81 3332 2 5678', f.inputDigit('8'));
}
function testAYTFLongIDD_AU() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('AU');
// 0011 1 650 253 2250
assertEquals('0', f.inputDigit('0'));
assertEquals('00', f.inputDigit('0'));
assertEquals('001', f.inputDigit('1'));
assertEquals('0011', f.inputDigit('1'));
assertEquals('0011 1 ', f.inputDigit('1'));
assertEquals('0011 1 6', f.inputDigit('6'));
assertEquals('0011 1 65', f.inputDigit('5'));
assertEquals('0011 1 650', f.inputDigit('0'));
assertEquals('0011 1 650 2', f.inputDigit('2'));
assertEquals('0011 1 650 25', f.inputDigit('5'));
assertEquals('0011 1 650 253', f.inputDigit('3'));
assertEquals('0011 1 650 253 2', f.inputDigit('2'));
assertEquals('0011 1 650 253 22', f.inputDigit('2'));
assertEquals('0011 1 650 253 222', f.inputDigit('2'));
assertEquals('0011 1 650 253 2222', f.inputDigit('2'));
// 0011 81 3332 2 5678
f.clear();
assertEquals('0', f.inputDigit('0'));
assertEquals('00', f.inputDigit('0'));
assertEquals('001', f.inputDigit('1'));
assertEquals('0011', f.inputDigit('1'));
assertEquals('00118', f.inputDigit('8'));
assertEquals('0011 81 ', f.inputDigit('1'));
assertEquals('0011 81 3', f.inputDigit('3'));
assertEquals('0011 81 33', f.inputDigit('3'));
assertEquals('0011 81 33 3', f.inputDigit('3'));
assertEquals('0011 81 3332', f.inputDigit('2'));
assertEquals('0011 81 3332 2', f.inputDigit('2'));
assertEquals('0011 81 3332 2 5', f.inputDigit('5'));
assertEquals('0011 81 3332 2 56', f.inputDigit('6'));
assertEquals('0011 81 3332 2 567', f.inputDigit('7'));
assertEquals('0011 81 3332 2 5678', f.inputDigit('8'));
// 0011 244 250 253 222
f.clear();
assertEquals('0', f.inputDigit('0'));
assertEquals('00', f.inputDigit('0'));
assertEquals('001', f.inputDigit('1'));
assertEquals('0011', f.inputDigit('1'));
assertEquals('00112', f.inputDigit('2'));
assertEquals('001124', f.inputDigit('4'));
assertEquals('0011 244 ', f.inputDigit('4'));
assertEquals('0011 244 2', f.inputDigit('2'));
assertEquals('0011 244 25', f.inputDigit('5'));
assertEquals('0011 244 250', f.inputDigit('0'));
assertEquals('0011 244 250 2', f.inputDigit('2'));
assertEquals('0011 244 250 25', f.inputDigit('5'));
assertEquals('0011 244 250 253', f.inputDigit('3'));
assertEquals('0011 244 250 253 2', f.inputDigit('2'));
assertEquals('0011 244 250 253 22', f.inputDigit('2'));
assertEquals('0011 244 250 253 222', f.inputDigit('2'));
}
function testAYTFLongIDD_KR() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('KR');
// 00300 1 650 253 2222
assertEquals('0', f.inputDigit('0'));
assertEquals('00', f.inputDigit('0'));
assertEquals('003', f.inputDigit('3'));
assertEquals('0030', f.inputDigit('0'));
assertEquals('00300', f.inputDigit('0'));
assertEquals('00300 1 ', f.inputDigit('1'));
assertEquals('00300 1 6', f.inputDigit('6'));
assertEquals('00300 1 65', f.inputDigit('5'));
assertEquals('00300 1 650', f.inputDigit('0'));
assertEquals('00300 1 650 2', f.inputDigit('2'));
assertEquals('00300 1 650 25', f.inputDigit('5'));
assertEquals('00300 1 650 253', f.inputDigit('3'));
assertEquals('00300 1 650 253 2', f.inputDigit('2'));
assertEquals('00300 1 650 253 22', f.inputDigit('2'));
assertEquals('00300 1 650 253 222', f.inputDigit('2'));
assertEquals('00300 1 650 253 2222', f.inputDigit('2'));
}
function testAYTFLongNDD_KR() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('KR');
// 08811-9876-7890
assertEquals('0', f.inputDigit('0'));
assertEquals('08', f.inputDigit('8'));
assertEquals('088', f.inputDigit('8'));
assertEquals('0881', f.inputDigit('1'));
assertEquals('08811', f.inputDigit('1'));
assertEquals('08811-9', f.inputDigit('9'));
assertEquals('08811-98', f.inputDigit('8'));
assertEquals('08811-987', f.inputDigit('7'));
assertEquals('08811-9876', f.inputDigit('6'));
assertEquals('08811-9876-7', f.inputDigit('7'));
assertEquals('08811-9876-78', f.inputDigit('8'));
assertEquals('08811-9876-789', f.inputDigit('9'));
assertEquals('08811-9876-7890', f.inputDigit('0'));
// 08500 11-9876-7890
f.clear();
assertEquals('0', f.inputDigit('0'));
assertEquals('08', f.inputDigit('8'));
assertEquals('085', f.inputDigit('5'));
assertEquals('0850', f.inputDigit('0'));
assertEquals('08500 ', f.inputDigit('0'));
assertEquals('08500 1', f.inputDigit('1'));
assertEquals('08500 11', f.inputDigit('1'));
assertEquals('08500 11-9', f.inputDigit('9'));
assertEquals('08500 11-98', f.inputDigit('8'));
assertEquals('08500 11-987', f.inputDigit('7'));
assertEquals('08500 11-9876', f.inputDigit('6'));
assertEquals('08500 11-9876-7', f.inputDigit('7'));
assertEquals('08500 11-9876-78', f.inputDigit('8'));
assertEquals('08500 11-9876-789', f.inputDigit('9'));
assertEquals('08500 11-9876-7890', f.inputDigit('0'));
}
function testAYTFLongNDD_SG() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('SG');
// 777777 9876 7890
assertEquals('7', f.inputDigit('7'));
assertEquals('77', f.inputDigit('7'));
assertEquals('777', f.inputDigit('7'));
assertEquals('7777', f.inputDigit('7'));
assertEquals('77777', f.inputDigit('7'));
assertEquals('777777 ', f.inputDigit('7'));
assertEquals('777777 9', f.inputDigit('9'));
assertEquals('777777 98', f.inputDigit('8'));
assertEquals('777777 987', f.inputDigit('7'));
assertEquals('777777 9876', f.inputDigit('6'));
assertEquals('777777 9876 7', f.inputDigit('7'));
assertEquals('777777 9876 78', f.inputDigit('8'));
assertEquals('777777 9876 789', f.inputDigit('9'));
assertEquals('777777 9876 7890', f.inputDigit('0'));
}

+ 105
- 94
javascript/i18n/phonenumbers/metadata.js View File

@ -354,7 +354,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"AM":[,[,,"[1-35-9]\\d{7}","\\d{5,8}"]
,[,,"(?:10\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}","\\d{5,8}",,,"10123456"]
,[,,"(?:55|77|9[1-46-9])\\d{6}","\\d{8}",,,"77123456"]
,[,,"(?:55|77|9[1-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"]
@ -606,13 +606,13 @@ 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[3-9]|9[1-9])\\d{6}","\\d{9}",,,"470123456"]
,[,,"4(?:[67]\\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"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"BE",32,"00","0",,,"0",,,,[[,"(4[7-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4[7-9]"]
,"BE",32,"00","0",,,"0",,,,[[,"(4[6-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4[6-9]"]
,"0$1",""]
,[,"([2-49])(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[23]|[49][23]"]
,"0$1",""]
@ -668,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(?:[23469]\\d|77|8[38])|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}",,,"36001234"]
,[,,"(?:3(?:[23469]\\d|77|8[348])|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"]
@ -696,7 +696,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"BJ":[,[,,"[2689]\\d{7}|7\\d{3}","\\d{4,8}"]
,[,,"2(?:02|1[037]|2[45]|3[68])\\d{5}","\\d{8}",,,"20211234"]
,[,,"66\\d{6}|9(?:0[069]|[35][0-2457-9]|[6-8]\\d)\\d{5}","\\d{8}",,,"90011234"]
,[,,"(?:6[46]|9[03-8])\\d{6}","\\d{8}",,,"90011234"]
,[,,"7[3-5]\\d{2}","\\d{4}",,,"7312"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -764,8 +764,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
]
,"BR":[,[,,"[1-9]\\d{7,9}","\\d{8,10}"]
,[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}","\\d{8,10}",,,"1123456789"]
,[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[6-9]\\d{7}","\\d{10}",,,"1161234567"]
,[,,"1[1-9][2-5]\\d{7}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}","\\d{8,10}",,,"1123456789"]
,[,,"1(?:1(?:[6-9]\\d|5[347])|[2-9][6-9]\\d)\\d{6}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[6-9]\\d{7}","\\d{10}",,,"1161234567"]
,[,,"800\\d{6,7}","\\d{8,10}",,,"800123456"]
,[,,"[359]00\\d{6,7}","\\d{8,10}",,,"300123456"]
,[,,"(?:400\\d|3003)\\d{4}","\\d{8,10}",,,"40041234"]
@ -794,17 +794,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,"242",[,,"NA","NA"]
,[,,"NA","NA"]
]
,"BT":[,[,,"(?:17|[2-8])\\d{6}","\\d{6,8}"]
,"BT":[,[,,"[1-8]\\d{6,7}","\\d{6,8}"]
,[,,"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}","\\d{6,7}",,,"2345678"]
,[,,"17\\d{6}","\\d{8}",,,"17123456"]
,[,,"[17]7\\d{6}","\\d{8}",,,"17123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"BT",975,"00",,,,,,,,[[,"(17)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1"]
,"BT",975,"00",,,,,,,,[[,"([17]7)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1|77"]
,"",""]
,[,"([2-8])(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"]
,[,"([2-8])(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]
,"",""]
]
,,[,,"NA","NA"]
@ -851,7 +851,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(?:[0-2]\\d|[67][01])\\d{4}","\\d{7}",,,"6221234"]
,[,,"6(?:[0-3]\\d|[67][01])\\d{4}","\\d{7}",,,"6221234"]
,[,,"0800\\d{7}","\\d{11}",,,"08001234123"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -955,9 +955,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"CI":[,[,,"[02-5]\\d{7}","\\d{8}"]
,"CI":[,[,,"[02-6]\\d{7}","\\d{8}"]
,[,,"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}","\\d{8}",,,"21234567"]
,[,,"(?:0[1-9]|4[04-9]|5[07]|6[067])\\d{6}","\\d{8}",,,"01234567"]
,[,,"(?:0[1-9]|4[04-9]|5[07]|6[0567])\\d{6}","\\d{8}",,,"01234567"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -987,8 +987,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"(?:2|32|41)\\d{7}|(?:3[3-5]|4[235]|5[1-3578]|6[13-57]|7[1-35])\\d{6,7}","\\d{6,9}",,,"21234567"]
,[,,"9[6-9]\\d{7}","\\d{8,9}",,,"961234567"]
,[,,"800\\d{6}|1230\\d{7}","\\d{9,11}",,,"800123456"]
,[,,"600\\d{7,8}","\\d{10,11}",,,"6001234567"]
,[,,"NA","NA"]
,[,,"600\\d{7,8}","\\d{10,11}",,,"6001234567"]
,[,,"NA","NA"]
,[,,"44\\d{7}","\\d{9}",,,"441234567"]
,"CL",56,"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0","0",,,"0|(1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))",,,,[[,"(2)(\\d{3})(\\d{4})","$1 $2 $3",["2"]
@ -1007,7 +1007,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"$1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,,,[,,"600\\d{7,8}","\\d{10,11}",,,"6001234567"]
,[,,"NA","NA"]
]
,"CM":[,[,,"[237-9]\\d{7}","\\d{8}"]
@ -1028,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[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"]
,[,,"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|[157]\\d|2[248]|3[04-9]|4[3-6]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))\\d{7}|80(?:29|6[03578]|7[018]|81)\\d{4}","\\d{4,12}",,,"1012345678"]
,[,,"1(?:3\\d|4[57]|5[0-35-9]|8[025-9])\\d{8}","\\d{11}",,,"13123456789"]
,[,,"(?:10)?800\\d{7}","\\d{10,12}",,,"8001234567"]
,[,,"16[08]\\d{5}","\\d{8}",,,"16812345"]
@ -1233,14 +1233,14 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
]
,"DK":[,[,,"[1-9]\\d{7}","\\d{8}"]
,[,,"(?:3[2-9]|4[3-9]|5[4-9]|6[2-9]|7[02-9]|8[26-9]|9[6-9])\\d{6}","\\d{8}",,,"32123456"]
,[,,"(?:2[0-9]|3[0-2]|4[0-2]|5[0-3]|6[01]|7[12]|81|99)\\d{6}","\\d{8}",,,"20123456"]
,[,,"(?:[2-7]\\d|8[126-9]|9[6-9])\\d{6}","\\d{8}",,,"32123456"]
,[,,"(?:[2-7]\\d|8[126-9]|9[6-9])\\d{6}","\\d{8}",,,"20123456"]
,[,,"80\\d{6}","\\d{8}",,,"80123456"]
,[,,"90\\d{6}","\\d{8}",,,"90123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"DK",45,"00",,,,,,,,[[,"([1-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
,"DK",45,"00",,,,,,,1,[[,"([1-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -1248,7 +1248,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"DM":[,[,,"[57-9]\\d{9}","\\d{7}(?:\\d{3})?"]
,[,,"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}","\\d{7}(?:\\d{3})?",,,"7674201234"]
,[,,"767(?:2(?:[2346]5|7[5-7])|31[5-7]|61[4-7])\\d{4}","\\d{10}",,,"7672251234"]
,[,,"767(?:2(?:[234689]5|7[5-7])|31[5-7]|61[2-7])\\d{4}","\\d{10}",,,"7672251234"]
,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002123456"]
,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002123456"]
,[,,"NA","NA"]
@ -1272,7 +1272,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"DZ":[,[,,"(?:[1-4]|[5-9]\\d)\\d{7}","\\d{8,9}"]
,[,,"(?:1\\d|2[014-79]|3[0-8]|4[0135689])\\d{6}|9619\\d{5}","\\d{8,9}",,,"12345678"]
,[,,"(?:5[56]|6[69]|7[79])\\d{7}","\\d{9}",,,"551234567"]
,[,,"(?:5[56]|6[569]|7[7-9])\\d{7}","\\d{9}",,,"551234567"]
,[,,"800\\d{6}","\\d{9}",,,"800123456"]
,[,,"80[3-689]1\\d{5}","\\d{9}",,,"808123456"]
,[,,"80[12]1\\d{5}","\\d{9}",,,"801123456"]
@ -1291,22 +1291,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"EC":[,[,,"[2-9]\\d{7}|1\\d{9,10}","\\d{7,11}"]
,[,,"[2-7][2-7]\\d{6}","\\d{7,8}",,,"22123456"]
,[,,"[89]\\d{7}","\\d{8}",,,"99123456"]
,[,,"(?:69|[89]\\d)\\d{6}","\\d{8}",,,"99123456"]
,[,,"1800\\d{6,7}","\\d{10,11}",,,"18001234567"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"EC",593,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"]
,"EC",593,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-57]|6[2-7]"]
,"(0$1)",""]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["69|[89]"]
,"0$1",""]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]
,"$1",""]
]
,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-7]"]
,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-57]|6[2-7]"]
]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["69|[89]"]
]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]
]
@ -1338,7 +1338,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"EG":[,[,,"1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}","\\d{5,10}"]
,[,,"(?:1[35][23]|2[23]\\d|3\\d|4(?:0[2-4]|[578][23]|64)|5(?:0[234]|[57][23])|6[24-689]3|8(?:[28][2-4]|42|6[23])|9(?:[25]2|3[24]|6[23]|7[2-4]))\\d{6}|1[69]\\d{3}","\\d{5,9}",,,"234567890"]
,[,,"1[0-246-9]\\d{7}","\\d{9}",,,"101234567"]
,[,,"1(?:[0-246-9]|5[0-2])\\d{7}","\\d{9,10}",,,"101234567"]
,[,,"800\\d{7}","\\d{10}",,,"8001234567"]
,[,,"900\\d{7}","\\d{10}",,,"9001234567"]
,[,,"NA","NA"]
@ -1346,9 +1346,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,"EG",20,"00","0",,,"0",,,,[[,"(\\d)(\\d{7,8})","$1 $2",["[23]"]
,"0$1",""]
,[,"(\\d{2})(\\d{7})","$1 $2",["[14-6]|[89][2-9]"]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["15[0-2]|[89]00"]
,"0$1",""]
,[,"([89]00)(\\d{3})(\\d{4})","$1 $2 $3",["[89]00"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:[0-246-9]|5[3-9])"]
,"0$1",""]
,[,"(\\d{2})(\\d{7})","$1 $2",["13|[4-6]|[89][2-9]"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -1418,7 +1420,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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[27-9])\\d{5}","\\d{7}",,,"7012345"]
,[,,"(?:7[0-467]|8[367]|9[02346-9])\\d{5}","\\d{7}",,,"7012345"]
,[,,"0800\\d{7}","\\d{11}",,,"08001234567"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -1695,7 +1697,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
]
,"GR":[,[,,"[26-9]\\d{9}","\\d{10}"]
,[,,"2(?:1\\d{2}|2(?:3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[289][1-9])|3(?:1\\d|2[1-5]|3[1-4]|[45][1-3]|7[1-7]|8[1-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|2[1-3]|4[124]|5[1-6]|[39][1-4])|6(?:1\\d|3[24]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-35])|7(?:1\\d|[23][1-5]|4[1-7]|5[1-57]|6[134]|9[15-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-7]))\\d{6}","\\d{10}",,,"2123456789"]
,[,,"2(?:1\\d{2}|2(?:3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[289][1-9])|3(?:1\\d|2[1-5]|3[1-4]|[45][1-3]|7[1-7]|8[1-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|2[1-3]|4[124]|5[1-6]|[39][1-4])|6(?:1\\d|3[24]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-35])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[134]|9[15-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-7]))\\d{6}","\\d{10}",,,"2123456789"]
,[,,"69\\d{8}","\\d{10}",,,"6912345678"]
,[,,"800\\d{7}","\\d{10}",,,"8001234567"]
,[,,"90[19]\\d{7}","\\d{10}",,,"9091234567"]
@ -1805,7 +1807,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"HR":[,[,,"[1-7]\\d{5,8}|[89]\\d{6,11}","\\d{6,12}"]
,[,,"(?:1|6[029])\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6}","\\d{6,9}",,,"12345678"]
,[,,"9[12589]\\d{6,10}","\\d{8,12}",,,"912345678"]
,[,,"9[1257-9]\\d{6,10}","\\d{8,12}",,,"912345678"]
,[,,"80[01]\\d{4,7}","\\d{7,10}",,,"8001234567"]
,[,,"6[145]\\d{4,7}","\\d{6,9}",,,"611234"]
,[,,"NA","NA"]
@ -1817,9 +1819,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([2-5]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-5]"]
,"0$1",""]
,[,"(9[12589])(\\d{3,4})(\\d{3,4})","$1 $2 $3",["9"]
,[,"(9\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["9"]
,"0$1",""]
,[,"(9\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9"]
,"0$1",""]
,[,"(9[12589])(\\d{3,4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]
,[,"(9\\d)(\\d{3,4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]
,"0$1",""]
,[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[145]|7"]
,"0$1",""]
@ -1836,7 +1840,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[2-9]|4\\d)\\d{6}","\\d{8}",,,"34101234"]
,[,,"(?:3[1-9]|4\\d)\\d{6}","\\d{8}",,,"34101234"]
,[,,"8\\d{7}","\\d{8}",,,"80012345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -1962,13 +1966,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"IN":[,[,,"1\\d{7,11}|[2-9]\\d{9,10}","\\d{6,12}"]
,[,,"(?:11|2[02]|33|4[04]|79)[2-6]\\d{7}|80[2-46]\\d{7}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[126-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-6]\\d{6}|(?:(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[13-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1-5]|4[25-8]|5[125689]|6[235-7]|7[157-9]|8[2-467])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24-58]|7[23-689]|8[1-6])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d|7(?:(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|9\\d)\\d|8(?:2[0-6]|[013-8]\\d)))[2-6]\\d{5}","\\d{6,10}",,,"1123456789"]
,[,,"(?:7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[134679]|5[0-489]|7[3679]|8[3-9]|9[689])|4(?:0[4579]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|[39][5-9]|42|60)|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7\\d|9[013-9]))|8(?:0[01589]\\d|1(?:[024]\\d|15|30|7[19]|97)|2(?:[2369]\\d|52|7[0135]|8[67])|3(?:0[235-8]|4[179]|74|90)|4(?:[02-58]\\d|10|6[09])|5(?:0[079]|[19]1|2\\d|30|4[47]|53|7[45])|6(?:[0589]\\d|7[09])|7(?:1[24]|[2569]\\d)|8(?:[07-9]\\d|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]\\d|2[35-9]|3[09]|4[038]|6[0-27-9]))|9\\d{3})\\d{6}","\\d{10}",,,"9123456789"]
,[,,"(?:7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[13-9]|5[0-4789]|7[3679]|8[1-9]|9[689])|4(?:0[245789]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|[39][5-9]|42|60)|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7\\d|9[013-9]))|8(?:0(?:[01589]\\d|66)|1(?:[024]\\d|1[56]|30|7[19]|97)|2(?:[2369]\\d|52|7[01357]|8[567])|3(?:0[235-8]|4[14789]|74|90)|4(?:[02-58]\\d|10|6[09])|5(?:0[079]|11|2\\d|30|4[47]|53|7[45]|9[015])|6(?:[0589]\\d|7[09])|7(?:1[24]|[2569]\\d)|8(?:[07-9]\\d|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]\\d|2[35-9]|3[09]|4[036-8]|6[0-46-9]))|9\\d{3})\\d{6}","\\d{10}",,,"9123456789"]
,[,,"1(?:600\\d{6}|800\\d{4,8})","\\d{8,12}",,,"1800123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"IN",91,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{6})","$1 $2 $3",["7(?:2[0579]|3[057-9]|4[0-389]|5[024-9]|6[0-35-9]|7[03469]|8[0-4679])|8(?:0[01589]|1[0-479]|2[236-9]|3[0479]|4[0-68]|5[0-579]6[05789]7[12569]|8[0124-9]|9[02-9])|9","7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[134679]|5[0-489]|7[3679]|8[3-9]|9[689])|4(?:0[4579]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|3[5-9]|42|60|9[5-9])|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7|9[013-9]))|8(?:0[01589]|1(?:[024]|15|30|7[19]|97)|2(?:[2369]|7[0135]|8[67])|3(?:0[235-8]|4[179]|74|90)|4(?:[02-58]|10|6[09])|5(?:0[079]|[19]1|2|30|4[47]|53|7[45])|6(?:[0589]|70)|7(?:1[24]|[2569])|8(?:[07-9]|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]|2[35-9]|3[09]|4[038]|6[0-27-9]))|9"]
,"IN",91,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{6})","$1 $2 $3",["7(?:2[0579]|3[057-9]|4[0-389]|5[024-9]|6[0-35-9]|7[03469]|8[0-4679])|8(?:0[01589]|1[0-479]|2[236-9]|3[0479]|4[0-68]|5[0-579]6[05789]7[12569]|8[0124-9]|9[02-9])|9","7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[13-9]|5[0-4789]|7[3679]|8[1-9]|9[689])|4(?:0[245789]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|3[5-9]|42|60|9[5-9])|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7|9[013-9]))|8(?:0[01589]|1(?:[024]|1[56]|30|7[19]|97)|2(?:[2369]|7[01357]|8[567])|3(?:0[235-8]|4[14789]|74|90)|4(?:[02-58]|10|6[09])|5(?:0[079]|11|2|30|4[47]|53|7[45]|9[015])|6(?:[0589]|70)|7(?:1[24]|[2569])|8(?:[07-9]|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]|2[35-9]|3[09]|4[03678]|6[0-46-9]))|9"]
,"0$1",""]
,[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79|80[2-46]"]
,"0$1",""]
@ -2007,7 +2011,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"IQ":[,[,,"[1-7]\\d{7,9}","\\d{6,10}"]
,[,,"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}","\\d{6,9}",,,"12345678"]
,[,,"7[5-9]\\d{8}","\\d{10}",,,"7912345678"]
,[,,"7[3-9]\\d{8}","\\d{10}",,,"7912345678"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2017,7 +2021,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([2-6]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"]
,"0$1",""]
,[,"(7[5-9]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["7"]
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -2043,7 +2047,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"IS":[,[,,"[4-9]\\d{6}|38\\d{7}","\\d{7,9}"]
,[,,"(?:4(?:1[0-245]|2[0-7]|[37][0-8]|4[0245]|5[0-356]|6\\d|8[0-46-8]|9[013-79])|5(?:05|[156]\\d|2[02578]|3[013-6]|4[03-6]|7[0-2578]|8[0-25-9]|9[013-689])|87[23])\\d{4}","\\d{7}",,,"4101234"]
,[,,"38[59]\\d{6}|(?:6(?:1[014-8]|2[0-8]|3[0-27-9]|4[0-29]|5[029]|[67][0-69]|[89]\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}",,,"6101234"]
,[,,"38[59]\\d{6}|(?:6(?:1[0-8]|2[0-8]|3[0-27-9]|4[0-29]|5[029]|[67][0-69]|[89]\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}",,,"6101234"]
,[,,"800\\d{4}","\\d{7}",,,"8001234"]
,[,,"90\\d{5}","\\d{7}",,,"9011234"]
,[,,"NA","NA"]
@ -2103,7 +2107,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
,[,,"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027]|2[3-5]|34|[45]0|63|7[05]|8[04]|9[4-9])7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468]))\\d{4}","\\d{7}(?:\\d{3})?",,,"8765123456"]
,[,,"876(?:(?:2[178]|[348]\\d|)\\d|5(?:27|66|[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"]
,[,,"876(?:2(?:[178]\\d|99)|[348]\\d{2}|5(?:08|27|66|[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"]
@ -2169,7 +2173,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"KE":[,[,,"\\d{6,10}","\\d{4,10}"]
,[,,"(?:20|4[0-6]|5\\d|6[0-24-9])\\d{4,7}","\\d{4,9}",,,"202012345"]
,[,,"7(?:0[0-3]|[123]\\d|5[0-3]|7[0-4])\\d{6}","\\d{9}",,,"712123456"]
,[,,"7(?:0[0-5]|[123]\\d|5[0-3]|7[0-5])\\d{6}","\\d{9}",,,"712123456"]
,[,,"8(?:00|88)\\d{6,7}","\\d{9,10}",,,"800123456"]
,[,,"9(?:00|1)\\d{6,7}","\\d{8,10}",,,"900123456"]
,[,,"NA","NA"]
@ -2186,7 +2190,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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"]
,[,,"5[124-7]\\d{7}|7(?:0[0-357-9]|7\\d)\\d{6}","\\d{9}",,,"700123456"]
,[,,"800\\d{6,7}","\\d{9,10}",,,"800123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2205,7 +2209,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"KH":[,[,,"[1-9]\\d{7,9}","\\d{6,10}"]
,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[567][2-5])[2-46-9]\\d{5}","\\d{6,8}",,,"23456789"]
,[,,"(?:(?: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"]
,[,,"(?:(?:1[0-35-9]|6[6-9]|7[06-89]|9\\d)[1-9]|8(?:0[89]|5[2-689]|8\\d{2}|[13469]\\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"]
@ -2279,7 +2283,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}","\\d{8}",,,"23821234"]
,[,,"NA","NA"]
]
,"KR":[,[,,"[1-79]\\d{3,9}|8\\d{8}","\\d{4,10}"]
,"KR":[,[,,"[1-7]\\d{3,9}|8\\d{8}","\\d{4,10}"]
,[,,"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})","\\d{4,10}",,,"22123456"]
,[,,"1[0-25-9]\\d{7,8}","\\d{9,10}",,,"1023456789"]
,[,,"80\\d{7}","\\d{9}",,,"801234567"]
@ -2289,7 +2293,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"70\\d{8}","\\d{10}",,,"7012345678"]
,"KR",82,"00(?:[124-68]|[37]\\d{2})","0",,,"0(8[1-46-8]|85\\d{2})?",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["1(?:0|1[19]|[69]9|5[458])|[57]0","1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"]
,"0$1","0$CC-$1"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-9][1-9][2-9]","1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-9][1-9][2-9]"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]","1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]"]
,"0$1","0$CC-$1"]
,[,"(\\d{3})(\\d)(\\d{4})","$1-$2-$3",["131","1312"]
,"0$1","0$CC-$1"]
@ -2305,7 +2309,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1","0$CC-$1"]
,[,"(\\d)(\\d{3,4})","$1-$2",["21[0-46-9]"]
,"0$1","0$CC-$1"]
,[,"(\\d{2})(\\d{3,4})","$1-$2",["[3-9][1-9]1","[3-9][1-9]1(?:[0-46-9])"]
,[,"(\\d{2})(\\d{3,4})","$1-$2",["[3-6][1-9]1","[3-6][1-9]1(?:[0-46-9])"]
,"0$1","0$CC-$1"]
,[,"(\\d{4})(\\d{4})","$1-$2",["1(?:5[46-9]|6[04678])","1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88))"]
,"$1","0$CC-$1"]
@ -2357,7 +2361,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"LA":[,[,,"[2-57]\\d{7,9}","\\d{6,10}"]
,[,,"(?:[2-57]1|54)\\d{6}","\\d{6,8}",,,"21212862"]
,[,,"20(?:2[23]|5[4-6]|77|9[89])\\d{6}","\\d{10}",,,"2023123456"]
,[,,"20(?:2[23]|5[4-68]|7[78]|9[7-9])\\d{6}","\\d{10}",,,"2023123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2374,7 +2378,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[167]))\\d{5}","\\d{7,8}",,,"71123456"]
,[,,"(?:3\\d|7(?:[01]\\d|6[136-9]))\\d{5}","\\d{7,8}",,,"71123456"]
,[,,"NA","NA"]
,[,,"9[01]\\d{6}","\\d{8}",,,"90123456"]
,[,,"8[01]\\d{6}","\\d{8}",,,"80123456"]
@ -2382,7 +2386,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[167])"]
,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[136-9])"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -2439,9 +2443,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"LR":[,[,,"(?:[279]\\d|[4-6]|[38]\\d{2})\\d{6}","\\d{7,9}"]
,"LR":[,[,,"(?:[29]\\d|[4-6]|7\\d{1,2}|[38]\\d{2})\\d{6}","\\d{7,9}"]
,[,,"2\\d{7}","\\d{8}",,,"21234567"]
,[,,"(?:4[67]|5\\d|6[4-8]|7\\d{2}|880\\d)\\d{5}","\\d{7,9}",,,"4612345"]
,[,,"(?:4[67]|5\\d|6[4-8]|7(?:76\\d|\\d{2})|880\\d)\\d{5}","\\d{7,9}",,,"4612345"]
,[,,"NA","NA"]
,[,,"90\\d{6}","\\d{8}",,,"90123456"]
,[,,"NA","NA"]
@ -2449,6 +2453,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"33200\\d{4}","\\d{9}",,,"332001234"]
,"LR",231,"00","0",,,"0",,,,[[,"([279]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[279]"]
,"0$1",""]
,[,"(7\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7"]
,"0$1",""]
,[,"([4-6])(\\d{3})(\\d{3})","$1 $2 $3",["[4-6]"]
,"0$1",""]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[38]"]
@ -2552,7 +2558,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MA":[,[,,"[5689]\\d{8}","\\d{9}"]
,[,,"5(?:2(?:(?:[015-7]\\d|2[2-9]|3[2-57]|4[2-8]|8[235-9]|)\\d|9(?:0\\d|[89]0))|3(?:(?:[0-4]\\d|[57][2-9]|6[235-8]|9[3-9])\\d|8(?:0\\d|[89]0)))\\d{4}","\\d{9}",,,"520123456"]
,[,,"6(?:0[06]|[14-7]\\d|2[236]|33|99)\\d{6}","\\d{9}",,,"650123456"]
,[,,"6(?:0[0-36]|[14-7]\\d|2[236]|3[348]|99)\\d{6}","\\d{9}",,,"650123456"]
,[,,"80\\d{7}","\\d{9}",,,"801234567"]
,[,,"89\\d{7}","\\d{9}",,,"891234567"]
,[,,"NA","NA"]
@ -2592,7 +2598,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MD":[,[,,"[256-9]\\d{7}","\\d{8}"]
,[,,"(?:2(?:1[0569]|2\\d|3[015-7]|4[1-46-9]|5[0-24689]|6[2-589]|7[1-37]|9[1347-9])|5(?:33|5[257]))\\d{5}","\\d{5,8}",,,"22212345"]
,[,,"(?:6(?:0[0-3]|50|7[12]|[89]\\d)|7(?:80|9\\d))\\d{5}","\\d{8}",,,"65012345"]
,[,,"(?:6(?:50|7[1-4]|[089]\\d)|7[89]\\d)\\d{5}","\\d{8}",,,"65012345"]
,[,,"800\\d{5}","\\d{8}",,,"80012345"]
,[,,"90[056]\\d{5}","\\d{8}",,,"90012345"]
,[,,"808\\d{5}","\\d{8}",,,"80812345"]
@ -2687,7 +2693,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"ML":[,[,,"[246-8]\\d{7}","\\d{8}"]
,[,,"(?:2(?:0(?:2[0-589]|7[027-9])|1(?:2[5-7]|[3-689]\\d))|442\\d)\\d{4}","\\d{8}",,,"20212345"]
,[,,"(?:6(?:[569]\\d)|7(?:[08][1-9]|[3579][0-4]|4[014-7]|6\\d))\\d{5}","\\d{8}",,,"65012345"]
,[,,"(?:6(?:[3569]\\d)|7(?:[08][1-9]|[3579][0-4]|4[014-7]|[16]\\d))\\d{5}","\\d{8}",,,"65012345"]
,[,,"800\\d{5}","\\d{8}",,,"80012345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2749,7 +2755,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MO":[,[,,"[268]\\d{7}","\\d{8}"]
,[,,"(?:28[2-57-9]|8[2-57-9]\\d)\\d{5}","\\d{8}",,,"28212345"]
,[,,"6[26]\\d{6}","\\d{8}",,,"66123456"]
,[,,"6[236]\\d{6}","\\d{8}",,,"66123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2891,9 +2897,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"01 $1",""]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]
,"01 $1",""]
,[,"(1)([358]\\d)(\\d{4})(\\d{4})","045 $2 $3 $4",["1(?:33|55|81)"]
,[,"(1)([358]\\d)(\\d{4})(\\d{4})","044 $2 $3 $4",["1(?:33|55|81)"]
,"$1",""]
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","045 $2 $3 $4",["1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","044 $2 $3 $4",["1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]
,"$1",""]
]
,[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81"]
@ -2911,7 +2917,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MY":[,[,,"[13-9]\\d{7,9}","\\d{6,10}"]
,[,,"(?:3\\d{2}|[4-79]\\d|8[2-9])\\d{6}","\\d{6,9}",,,"312345678"]
,[,,"1[0-46-9]\\d{7}","\\d{9}",,,"123456789"]
,[,,"1(?:[02-46-9][2-9]|11\\d)\\d{6}","\\d{9,10}",,,"123456789"]
,[,,"1[38]00\\d{6}","\\d{10}",,,"1300123456"]
,[,,"1600\\d{6}","\\d{10}",,,"1600123456"]
,[,,"NA","NA"]
@ -2921,10 +2927,12 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"(3)(\\d{4})(\\d{4})","$1-$2 $3",["3"]
,"0$1",""]
,[,"([18]\\d)(\\d{3})(\\d{3,4})","$1-$2 $3",["1[0-46-9][1-9]|8"]
,[,"([18]\\d)(\\d{3})(\\d{3,4})","$1-$2 $3",["1[02-46-9][1-9]|8"]
,"0$1",""]
,[,"(1)([36-8]00)(\\d{2})(\\d{4})","$1-$2-$3-$4",["1[36-8]0"]
,"",""]
,[,"(11)(\\d{4})(\\d{4})","$1-$2 $3",["11"]
,"0$1",""]
,[,"(154)(\\d{3})(\\d{4})","$1-$2 $3",["15"]
,"0$1",""]
]
@ -2986,7 +2994,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"NE":[,[,,"[029]\\d{7}","\\d{8}"]
,[,,"2(?:0(?:20|3[1-7]|4[134]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}","\\d{8}",,,"20201234"]
,[,,"9[03467]\\d{6}","\\d{8}",,,"93123456"]
,[,,"9[0134678]\\d{6}","\\d{8}",,,"93123456"]
,[,,"08\\d{6}","\\d{8}",,,"08123456"]
,[,,"09\\d{6}","\\d{8}",,,"09123456"]
,[,,"NA","NA"]
@ -3020,7 +3028,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"NG":[,[,,"[1-69]\\d{5,8}|[78]\\d{5,13}","\\d{5,14}"]
,[,,"[12]\\d{6,7}|9\\d{7}|(?:4[023568]|5[02368]|6[02-469]|7[569]|8[2-9])\\d{6}|(?:4[47]|5[14579]|6[1578]|7[0-357])\\d{5,6}|(?:78|41)\\d{5}","\\d{5,9}",,,"12345678"]
,[,,"(?:70(?:[3-9]\\d|2[1-9])|8(?:0[2-9]|1[23689])\\d)\\d{6}","\\d{10}",,,"8021234567"]
,[,,"(?:70(?:[3-9]\\d|2[1-9])|8(?:0[2-9]|1[0235689])\\d)\\d{6}","\\d{10}",,,"8021234567"]
,[,,"800\\d{7,11}","\\d{10,14}",,,"80017591759"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3236,7 +3244,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PG":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"]
,[,,"(?:3\\d{2}|4[257]\\d|5[34]\\d|6(?:29|4[1-9])|85[02-46-9]|9[78]\\d)\\d{4}","\\d{7}",,,"3123456"]
,[,,"(?:68|7(?:[126]\\d|3[1-9]))\\d{5}","\\d{7,8}",,,"6812345"]
,[,,"(?:68|7[1236]\\d)\\d{5}","\\d{7,8}",,,"6812345"]
,[,,"180\\d{4}","\\d{7}",,,"1801234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3253,7 +3261,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PH":[,[,,"[2-9]\\d{7,9}|1800\\d{7,9}","\\d{7,13}"]
,[,,"(?:2|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578]|8[2-8])\\d{7}","\\d{7,9}",,,"21234567"]
,[,,"9(?:0[5-9]|1[025-9]|2[0-36-9]|3[0235-9]|4[89]|7[349]|89|9[49])\\d{7}","\\d{10}",,,"9051234567"]
,[,,"9(?:0[5-9]|1[025-9]|2[0-36-9]|3[02-9]|4[236-9]|7[349]|89|9[49])\\d{7}","\\d{10}",,,"9051234567"]
,[,,"1800\\d{7,9}","\\d{11,13}",,,"180012345678"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3280,7 +3288,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-7]|64)\\d{7}","\\d{10}",,,"3012345678"]
,[,,"3(?:0\\d|1[2-5]|2[1-5]|3[1-6]|4[1-7]|64)\\d{7}","\\d{10}",,,"3012345678"]
,[,,"800\\d{5}","\\d{8}",,,"80012345"]
,[,,"900\\d{5}","\\d{8}",,,"90012345"]
,[,,"NA","NA"]
@ -3399,7 +3407,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PY":[,[,,"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}","\\d{5,9}"]
,[,,"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}","\\d{5,9}",,,"212345678"]
,[,,"9(?:61|7[12356]|8[1-5]|9[1235])\\d{6}","\\d{9}",,,"961456789"]
,[,,"9(?:61|7[1-6]|8[1-5]|9[1-5])\\d{6}","\\d{9}",,,"961456789"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3418,11 +3426,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"[2-9]0\\d{4,7}","\\d{5,9}",,,"201234567"]
,[,,"[2-9]0\\d{4,7}","\\d{6,9}",,,"201234567"]
]
,"QA":[,[,,"[3-8]\\d{6,7}","\\d{7,8}"]
,[,,"44\\d{6}","\\d{7,8}",,,"44123456"]
,[,,"(?:33|55|66|77)\\d{6}","\\d{7,8}",,,"33123456"]
,[,,"(?:3[03]|55|66|7[07])\\d{6}","\\d{7,8}",,,"33123456"]
,[,,"800\\d{4}","\\d{7,8}",,,"8001234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3531,7 +3539,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"SA":[,[,,"[1-9]\\d{7,10}","\\d{7,11}"]
,[,,"(?:1[24-7]|2[24-8]|3[35-8]|4[34-68]|6[2-5]|7[235-7])\\d{6}","\\d{7,8}",,,"12345678"]
,[,,"(?:5[013-69]\\d|8111)\\d{6}","\\d{9,10}",,,"512345678"]
,[,,"(?:5[013-689]\\d|8111)\\d{6}","\\d{9,10}",,,"512345678"]
,[,,"800\\d{7}","\\d{10}",,,"8001234567"]
,[,,"9200\\d{7}","\\d{11}",,,"92001234567"]
,[,,"NA","NA"]
@ -3583,7 +3591,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"SD":[,[,,"[19]\\d{8}","\\d{9}"]
,[,,"1(?:[25]\\d|8[3567])\\d{6}","\\d{9}",,,"121231234"]
,[,,"9[1259]\\d{7}","\\d{9}",,,"911231234"]
,[,,"9[01259]\\d{7}","\\d{9}",,,"911231234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3643,7 +3651,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"SG":[,[,,"[36]\\d{7}|[17-9]\\d{7,10}","\\d{8,11}"]
,[,,"6[1-8]\\d{6}","\\d{8}",,,"61234567"]
,[,,"(?:8[1-5]|9[0-8])\\d{6}","\\d{8}",,,"81234567"]
,[,,"(?:8[1-6]|9[0-8])\\d{6}","\\d{8}",,,"81234567"]
,[,,"1?800\\d{7}","\\d{10,11}",,,"18001234567"]
,[,,"1900\\d{7}","\\d{11}",,,"19001234567"]
,[,,"NA","NA"]
@ -3768,7 +3776,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"SN":[,[,,"[37]\\d{8}","\\d{9}"]
,[,,"3(?:010|3(?:8[1-9]|9[2-9]))\\d{5}","\\d{9}",,,"301012345"]
,[,,"7(?:0[1256]0|6(?:1[23]|2[89]|3[3489]|4[6-9]|5[1-389]|6[5-9]|7[45]|8[3-8])|7(?:01|1[014-8]|[2-79]\\d|8[019]))\\d{5}","\\d{9}",,,"701012345"]
,[,,"7(?:0[1256]0|6(?:1[23]|2[89]|3[3489]|4[6-9]|5[1-9]|6[3-9]|7[45]|8[3-8])|7(?:01|[12-79]\\d|8[0139]))\\d{5}","\\d{9}",,,"701012345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3895,7 +3903,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"TD":[,[,,"[2679]\\d{7}","\\d{8}"]
,[,,"22(?:[3789]0|5[0-5]|6[89])\\d{4}","\\d{8}",,,"22501234"]
,[,,"(?:6(?:3[0-7]|6\\d)|77\\d|9(?:5[0-4]|9\\d))\\d{5}","\\d{8}",,,"63012345"]
,[,,"(?:6[36]\\d|77\\d|9(?:5[0-4]|9\\d))\\d{5}","\\d{8}",,,"63012345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3907,24 +3915,23 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"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"]
,"TG":[,[,,"[29]\\d{7}","\\d{8}"]
,[,,"2(?:2[2-7]|3[23]|44|55|66|77)\\d{5}","\\d{8}",,,"22212345"]
,[,,"9[0-289]\\d{6}","\\d{8}",,,"90112345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"TG",228,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",,"",""]
,[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
,"TG",228,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
,1]
,"TH":[,[,,"[2-8]\\d{7,8}|1\\d{9}","\\d{8,10}"]
,[,,"(?:2[1-9]|3[24-9]|4[2-5]|5[3-6]|7[3-7])\\d{6}","\\d{8}",,,"21234567"]
,[,,"8\\d{8}","\\d{9}",,,"812345678"]
]
,"TH":[,[,,"[2-9]\\d{7,8}|1\\d{9}","\\d{8,10}"]
,[,,"(?:2[1-9]|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}","\\d{8}",,,"21234567"]
,[,,"[89]\\d{8}","\\d{9}",,,"812345678"]
,[,,"1800\\d{6}","\\d{10}",,,"1800123456"]
,[,,"1900\\d{6}","\\d{10}",,,"1900123456"]
,[,,"NA","NA"]
@ -3934,7 +3941,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([3-7]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[3-7]"]
,"0$1",""]
,[,"(8)(\\d{4})(\\d{4})","$1 $2 $3",["8"]
,[,"([89])(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]
,"0$1",""]
,[,"(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3",["1"]
,"$1",""]
@ -4004,15 +4011,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"TN":[,[,,"[247-9]\\d{7}","\\d{8}"]
,"TN":[,[,,"[2457-9]\\d{7}","\\d{8}"]
,[,,"7\\d{7}","\\d{8}",,,"71234567"]
,[,,"(?:[29]\\d|4[01])\\d{6}","\\d{8}",,,"20123456"]
,[,,"(?:[29]\\d|4[01]|5[01258]|)\\d{6}","\\d{8}",,,"20123456"]
,[,,"NA","NA"]
,[,,"8[028]\\d{6}","\\d{8}",,,"80123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"TN",216,"00",,,,,,,,[[,"([247-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",,"",""]
,"TN",216,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",,"",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -4058,7 +4065,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"TT":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
,[,,"868(?:2(?:01|2[1-5])|6(?:07|1[4-6]|2[1-9]|[3-6]\\d|7[0-79]|9[0-8])|82[12])\\d{4}","\\d{7}(?:\\d{3})?",,,"8682211234"]
,[,,"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"]
,[,,"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(?:03|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"]
,[,,"NA","NA"]
@ -4137,7 +4144,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"UG":[,[,,"\\d{9}","\\d{5,9}"]
,[,,"3\\d{8}|4(?:[1-6]\\d|7[136]|8[1356]|96)\\d{6}|20(?:0\\d|24)\\d{5}","\\d{5,9}",,,"312345678"]
,[,,"7(?:[15789]\\d|0[0-4])\\d{6}","\\d{9}",,,"712345678"]
,[,,"7(?:[15789]\\d|0[0-7])\\d{6}","\\d{9}",,,"712345678"]
,[,,"800[123]\\d{5}","\\d{9}",,,"800123456"]
,[,,"90[123]\\d{6}","\\d{9}",,,"901123456"]
,[,,"NA","NA"]
@ -4345,7 +4352,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"YE":[,[,,"[1-7]\\d{6,8}","\\d{6,9}"]
,[,,"(?:1(?:7\\d|[2-68])|2[2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}","\\d{6,8}",,,"1234567"]
,[,,"7[137]\\d{7}","\\d{9}",,,"712345678"]
,[,,"7[0137]\\d{7}","\\d{9}",,,"712345678"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -4353,7 +4360,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,"YE",967,"00","0",,,"0",,,,[[,"([1-7])(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7[24-68]"]
,"0$1",""]
,[,"(7[137]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["7[137]"]
,[,"(7\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7[0137]"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -4372,9 +4379,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,"269|63",[,,"NA","NA"]
,[,,"NA","NA"]
]
,"ZA":[,[,,"[1-578]\\d{8}","\\d{8,9}"]
,"ZA":[,[,,"[1-5]\\d{8}|(?:7\\d{4,8}|8[1-5789]\\d{3,7})|8[06]\\d{7}","\\d{5,9}"]
,[,,"(?:1[0-8]|2[1-478]|3[1-69]|4\\d|5[1346-8])\\d{7}","\\d{8,9}",,,"101234567"]
,[,,"(?:7[1-4689]|8[1-5789])\\d{7}","\\d{9}",,,"711234567"]
,[,,"(?:7[1-4689]|8[1-5789])\\d{3,7}","\\d{5,9}",,,"711234567"]
,[,,"80\\d{7}","\\d{9}",,,"801234567"]
,[,,"86[1-9]\\d{6}","\\d{9}",,,"861234567"]
,[,,"860\\d{6}","\\d{9}",,,"860123456"]
@ -4384,6 +4391,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([1-578]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[1-57]|8(?:[0-57-9]|6[1-9])"]
,"0$1",""]
,[,"(\\d{2})(\\d{3,4})","$1 $2",["7|8[1-5789]"]
,"0$1",""]
,[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["7|8[1-5789]"]
,"0$1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -4391,7 +4402,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"ZM":[,[,,"[289]\\d{8}","\\d{9}"]
,[,,"21[1-8]\\d{6}","\\d{9}",,,"211234567"]
,[,,"9(?:55|6[3-9]|7[4-9])\\d{6}","\\d{9}",,,"955123456"]
,[,,"9(?:5[05]|6[1-9]|7[13-9])\\d{6}","\\d{9}",,,"955123456"]
,[,,"800\\d{6}","\\d{9}",,,"800123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]


+ 5
- 5
javascript/i18n/phonenumbers/metadatafortesting.js View File

@ -234,7 +234,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"KR":[,[,,"[1-79]\\d{3,9}|8\\d{8}","\\d{4,10}"]
,"KR":[,[,,"[1-7]\\d{3,9}|8\\d{8}","\\d{4,10}"]
,[,,"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})","\\d{4,10}",,,"22123456"]
,[,,"1[0-25-9]\\d{7,8}","\\d{9,10}",,,"1023456789"]
,[,,"80\\d{7}","\\d{9}",,,"801234567"]
@ -244,7 +244,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"70\\d{8}","\\d{10}",,,"7012345678"]
,"KR",82,"00(?:[124-68]|[37]\\d{2})","0",,,"0(8[1-46-8]|85\\d{2})?",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["1(?:0|1[19]|[69]9|5[458])|[57]0","1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"]
,"0$1",""]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-9][1-9][2-9]","1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-9][1-9][2-9]"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]","1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]"]
,"0$1",""]
,[,"(\\d{3})(\\d)(\\d{4})","$1-$2-$3",["131","1312"]
,"0$1",""]
@ -262,9 +262,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"(\\d)(\\d{4})","$1-$2",["21[36]","21(?:3[035-9]|6[03-578])"]
,"0$1",""]
,[,"(\\d{2})(\\d{3})","$1-$2",["[3-9][1-9]1","[3-9][1-9]1(?:[0-46-9])","[3-9][1-9]1(?:[0-247-9]|3[124]|6[1269])"]
,[,"(\\d{2})(\\d{3})","$1-$2",["[3-6][1-9]1","[3-6][1-9]1(?:[0-46-9])","[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])"]
,"0$1",""]
,[,"(\\d{2})(\\d{4})","$1-$2",["[3-9][1-9]1","[3-9][1-9]1[36]","[3-9][1-9]1(?:3[035-9]|6[03-578])"]
,[,"(\\d{2})(\\d{4})","$1-$2",["[3-6][1-9]1","[3-6][1-9]1[36]","[3-6][1-9]1(?:3[035-9]|6[03-578])"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -360,7 +360,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"SG",65,"0[0-3][0-9]",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[369]|8[1-9]"]
,"SG",65,"0[0-3][0-9]",,,,"777777",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[369]|8[1-9]"]
,"",""]
,[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1[89]"]
,"",""]


+ 105
- 94
javascript/i18n/phonenumbers/metadatalite.js View File

@ -354,7 +354,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"AM":[,[,,"[1-35-9]\\d{7}","\\d{5,8}"]
,[,,"(?:10\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}","\\d{5,8}"]
,[,,"(?:55|77|9[1-46-9])\\d{6}","\\d{8}"]
,[,,"(?:55|77|9[1-9])\\d{6}","\\d{8}"]
,[,,"800\\d{5}","\\d{8}"]
,[,,"90[016]\\d{5}","\\d{8}"]
,[,,"80[1-4]\\d{5}","\\d{8}"]
@ -606,13 +606,13 @@ 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[3-9]|9[1-9])\\d{6}","\\d{9}"]
,[,,"4(?:[67]\\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}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"BE",32,"00","0",,,"0",,,,[[,"(4[7-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4[7-9]"]
,"BE",32,"00","0",,,"0",,,,[[,"(4[6-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4[6-9]"]
,"0$1",""]
,[,"([2-49])(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[23]|[49][23]"]
,"0$1",""]
@ -668,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(?:[23469]\\d|77|8[38])|6(?:1[16]|6[03469]|9[69])|77\\d)\\d{5}","\\d{8}"]
,[,,"(?:3(?:[23469]\\d|77|8[348])|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}"]
@ -696,7 +696,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"BJ":[,[,,"[2689]\\d{7}|7\\d{3}","\\d{4,8}"]
,[,,"2(?:02|1[037]|2[45]|3[68])\\d{5}","\\d{8}"]
,[,,"66\\d{6}|9(?:0[069]|[35][0-2457-9]|[6-8]\\d)\\d{5}","\\d{8}"]
,[,,"(?:6[46]|9[03-8])\\d{6}","\\d{8}"]
,[,,"7[3-5]\\d{2}","\\d{4}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -764,8 +764,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
]
,"BR":[,[,,"[1-9]\\d{7,9}","\\d{8,10}"]
,[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}","\\d{8,10}"]
,[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[6-9]\\d{7}","\\d{10}"]
,[,,"1[1-9][2-5]\\d{7}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}","\\d{8,10}"]
,[,,"1(?:1(?:[6-9]\\d|5[347])|[2-9][6-9]\\d)\\d{6}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[6-9]\\d{7}","\\d{10}"]
,[,,"800\\d{6,7}","\\d{8,10}"]
,[,,"[359]00\\d{6,7}","\\d{8,10}"]
,[,,"(?:400\\d|3003)\\d{4}","\\d{8,10}"]
@ -794,17 +794,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,"242",[,,"NA","NA"]
,[,,"NA","NA"]
]
,"BT":[,[,,"(?:17|[2-8])\\d{6}","\\d{6,8}"]
,"BT":[,[,,"[1-8]\\d{6,7}","\\d{6,8}"]
,[,,"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}","\\d{6,7}"]
,[,,"17\\d{6}","\\d{8}"]
,[,,"[17]7\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"BT",975,"00",,,,,,,,[[,"(17)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1"]
,"BT",975,"00",,,,,,,,[[,"([17]7)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1|77"]
,"",""]
,[,"([2-8])(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"]
,[,"([2-8])(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]
,"",""]
]
,,[,,"NA","NA"]
@ -851,7 +851,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"BZ":[,[,,"[2-8]\\d{6}|0\\d{10}","\\d{7}(?:\\d{4})?"]
,[,,"[234578][02]\\d{5}","\\d{7}"]
,[,,"6(?:[0-2]\\d|[67][01])\\d{4}","\\d{7}"]
,[,,"6(?:[0-3]\\d|[67][01])\\d{4}","\\d{7}"]
,[,,"0800\\d{7}","\\d{11}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -955,9 +955,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"CI":[,[,,"[02-5]\\d{7}","\\d{8}"]
,"CI":[,[,,"[02-6]\\d{7}","\\d{8}"]
,[,,"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}","\\d{8}"]
,[,,"(?:0[1-9]|4[04-9]|5[07]|6[067])\\d{6}","\\d{8}"]
,[,,"(?:0[1-9]|4[04-9]|5[07]|6[0567])\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -987,8 +987,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"(?:2|32|41)\\d{7}|(?:3[3-5]|4[235]|5[1-3578]|6[13-57]|7[1-35])\\d{6,7}","\\d{6,9}"]
,[,,"9[6-9]\\d{7}","\\d{8,9}"]
,[,,"800\\d{6}|1230\\d{7}","\\d{9,11}"]
,[,,"600\\d{7,8}","\\d{10,11}"]
,[,,"NA","NA"]
,[,,"600\\d{7,8}","\\d{10,11}"]
,[,,"NA","NA"]
,[,,"44\\d{7}","\\d{9}"]
,"CL",56,"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0","0",,,"0|(1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))",,,,[[,"(2)(\\d{3})(\\d{4})","$1 $2 $3",["2"]
@ -1007,7 +1007,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"$1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,,,[,,"600\\d{7,8}","\\d{10,11}"]
,[,,"NA","NA"]
]
,"CM":[,[,,"[237-9]\\d{7}","\\d{8}"]
@ -1028,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[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}"]
,[,,"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|[157]\\d|2[248]|3[04-9]|4[3-6]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))\\d{7}|80(?:29|6[03578]|7[018]|81)\\d{4}","\\d{4,12}"]
,[,,"1(?:3\\d|4[57]|5[0-35-9]|8[025-9])\\d{8}","\\d{11}"]
,[,,"(?:10)?800\\d{7}","\\d{10,12}"]
,[,,"16[08]\\d{5}","\\d{8}"]
@ -1233,14 +1233,14 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
]
,"DK":[,[,,"[1-9]\\d{7}","\\d{8}"]
,[,,"(?:3[2-9]|4[3-9]|5[4-9]|6[2-9]|7[02-9]|8[26-9]|9[6-9])\\d{6}","\\d{8}"]
,[,,"(?:2[0-9]|3[0-2]|4[0-2]|5[0-3]|6[01]|7[12]|81|99)\\d{6}","\\d{8}"]
,[,,"(?:[2-7]\\d|8[126-9]|9[6-9])\\d{6}","\\d{8}"]
,[,,"(?:[2-7]\\d|8[126-9]|9[6-9])\\d{6}","\\d{8}"]
,[,,"80\\d{6}","\\d{8}"]
,[,,"90\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"DK",45,"00",,,,,,,,[[,"([1-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
,"DK",45,"00",,,,,,,1,[[,"([1-9]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -1248,7 +1248,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"DM":[,[,,"[57-9]\\d{9}","\\d{7}(?:\\d{3})?"]
,[,,"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}","\\d{7}(?:\\d{3})?"]
,[,,"767(?:2(?:[2346]5|7[5-7])|31[5-7]|61[4-7])\\d{4}","\\d{10}"]
,[,,"767(?:2(?:[234689]5|7[5-7])|31[5-7]|61[2-7])\\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"]
@ -1272,7 +1272,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"DZ":[,[,,"(?:[1-4]|[5-9]\\d)\\d{7}","\\d{8,9}"]
,[,,"(?:1\\d|2[014-79]|3[0-8]|4[0135689])\\d{6}|9619\\d{5}","\\d{8,9}"]
,[,,"(?:5[56]|6[69]|7[79])\\d{7}","\\d{9}"]
,[,,"(?:5[56]|6[569]|7[7-9])\\d{7}","\\d{9}"]
,[,,"800\\d{6}","\\d{9}"]
,[,,"80[3-689]1\\d{5}","\\d{9}"]
,[,,"80[12]1\\d{5}","\\d{9}"]
@ -1291,22 +1291,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"EC":[,[,,"[2-9]\\d{7}|1\\d{9,10}","\\d{7,11}"]
,[,,"[2-7][2-7]\\d{6}","\\d{7,8}"]
,[,,"[89]\\d{7}","\\d{8}"]
,[,,"(?:69|[89]\\d)\\d{6}","\\d{8}"]
,[,,"1800\\d{6,7}","\\d{10,11}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"EC",593,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"]
,"EC",593,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-57]|6[2-7]"]
,"(0$1)",""]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["69|[89]"]
,"0$1",""]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]
,"$1",""]
]
,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-7]"]
,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-57]|6[2-7]"]
]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["69|[89]"]
]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]
]
@ -1338,7 +1338,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"EG":[,[,,"1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}","\\d{5,10}"]
,[,,"(?:1[35][23]|2[23]\\d|3\\d|4(?:0[2-4]|[578][23]|64)|5(?:0[234]|[57][23])|6[24-689]3|8(?:[28][2-4]|42|6[23])|9(?:[25]2|3[24]|6[23]|7[2-4]))\\d{6}|1[69]\\d{3}","\\d{5,9}"]
,[,,"1[0-246-9]\\d{7}","\\d{9}"]
,[,,"1(?:[0-246-9]|5[0-2])\\d{7}","\\d{9,10}"]
,[,,"800\\d{7}","\\d{10}"]
,[,,"900\\d{7}","\\d{10}"]
,[,,"NA","NA"]
@ -1346,9 +1346,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,"EG",20,"00","0",,,"0",,,,[[,"(\\d)(\\d{7,8})","$1 $2",["[23]"]
,"0$1",""]
,[,"(\\d{2})(\\d{7})","$1 $2",["[14-6]|[89][2-9]"]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["15[0-2]|[89]00"]
,"0$1",""]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:[0-246-9]|5[3-9])"]
,"0$1",""]
,[,"([89]00)(\\d{3})(\\d{4})","$1 $2 $3",["[89]00"]
,[,"(\\d{2})(\\d{7})","$1 $2",["13|[4-6]|[89][2-9]"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -1418,7 +1420,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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[27-9])\\d{5}","\\d{7}"]
,[,,"(?:7[0-467]|8[367]|9[02346-9])\\d{5}","\\d{7}"]
,[,,"0800\\d{7}","\\d{11}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -1695,7 +1697,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
]
,"GR":[,[,,"[26-9]\\d{9}","\\d{10}"]
,[,,"2(?:1\\d{2}|2(?:3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[289][1-9])|3(?:1\\d|2[1-5]|3[1-4]|[45][1-3]|7[1-7]|8[1-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|2[1-3]|4[124]|5[1-6]|[39][1-4])|6(?:1\\d|3[24]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-35])|7(?:1\\d|[23][1-5]|4[1-7]|5[1-57]|6[134]|9[15-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-7]))\\d{6}","\\d{10}"]
,[,,"2(?:1\\d{2}|2(?:3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[289][1-9])|3(?:1\\d|2[1-5]|3[1-4]|[45][1-3]|7[1-7]|8[1-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|2[1-3]|4[124]|5[1-6]|[39][1-4])|6(?:1\\d|3[24]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-35])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[134]|9[15-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-7]))\\d{6}","\\d{10}"]
,[,,"69\\d{8}","\\d{10}"]
,[,,"800\\d{7}","\\d{10}"]
,[,,"90[19]\\d{7}","\\d{10}"]
@ -1805,7 +1807,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"HR":[,[,,"[1-7]\\d{5,8}|[89]\\d{6,11}","\\d{6,12}"]
,[,,"(?:1|6[029])\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6}","\\d{6,9}"]
,[,,"9[12589]\\d{6,10}","\\d{8,12}"]
,[,,"9[1257-9]\\d{6,10}","\\d{8,12}"]
,[,,"80[01]\\d{4,7}","\\d{7,10}"]
,[,,"6[145]\\d{4,7}","\\d{6,9}"]
,[,,"NA","NA"]
@ -1817,9 +1819,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([2-5]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-5]"]
,"0$1",""]
,[,"(9[12589])(\\d{3,4})(\\d{3,4})","$1 $2 $3",["9"]
,[,"(9\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["9"]
,"0$1",""]
,[,"(9[12589])(\\d{3,4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]
,[,"(9\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9"]
,"0$1",""]
,[,"(9\\d)(\\d{3,4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]
,"0$1",""]
,[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[145]|7"]
,"0$1",""]
@ -1836,7 +1840,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"HT":[,[,,"[2-489]\\d{7}","\\d{8}"]
,[,,"2(?:[24]\\d|5[1-5]|94)\\d{5}","\\d{8}"]
,[,,"(?:3[2-9]|4\\d)\\d{6}","\\d{8}"]
,[,,"(?:3[1-9]|4\\d)\\d{6}","\\d{8}"]
,[,,"8\\d{7}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -1962,13 +1966,13 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"IN":[,[,,"1\\d{7,11}|[2-9]\\d{9,10}","\\d{6,12}"]
,[,,"(?:11|2[02]|33|4[04]|79)[2-6]\\d{7}|80[2-46]\\d{7}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[126-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-6]\\d{6}|(?:(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[13-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1-5]|4[25-8]|5[125689]|6[235-7]|7[157-9]|8[2-467])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24-58]|7[23-689]|8[1-6])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d|7(?:(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|9\\d)\\d|8(?:2[0-6]|[013-8]\\d)))[2-6]\\d{5}","\\d{6,10}"]
,[,,"(?:7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[134679]|5[0-489]|7[3679]|8[3-9]|9[689])|4(?:0[4579]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|[39][5-9]|42|60)|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7\\d|9[013-9]))|8(?:0[01589]\\d|1(?:[024]\\d|15|30|7[19]|97)|2(?:[2369]\\d|52|7[0135]|8[67])|3(?:0[235-8]|4[179]|74|90)|4(?:[02-58]\\d|10|6[09])|5(?:0[079]|[19]1|2\\d|30|4[47]|53|7[45])|6(?:[0589]\\d|7[09])|7(?:1[24]|[2569]\\d)|8(?:[07-9]\\d|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]\\d|2[35-9]|3[09]|4[038]|6[0-27-9]))|9\\d{3})\\d{6}","\\d{10}"]
,[,,"(?:7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[13-9]|5[0-4789]|7[3679]|8[1-9]|9[689])|4(?:0[245789]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|[39][5-9]|42|60)|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7\\d|9[013-9]))|8(?:0(?:[01589]\\d|66)|1(?:[024]\\d|1[56]|30|7[19]|97)|2(?:[2369]\\d|52|7[01357]|8[567])|3(?:0[235-8]|4[14789]|74|90)|4(?:[02-58]\\d|10|6[09])|5(?:0[079]|11|2\\d|30|4[47]|53|7[45]|9[015])|6(?:[0589]\\d|7[09])|7(?:1[24]|[2569]\\d)|8(?:[07-9]\\d|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]\\d|2[35-9]|3[09]|4[036-8]|6[0-46-9]))|9\\d{3})\\d{6}","\\d{10}"]
,[,,"1(?:600\\d{6}|800\\d{4,8})","\\d{8,12}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"IN",91,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{6})","$1 $2 $3",["7(?:2[0579]|3[057-9]|4[0-389]|5[024-9]|6[0-35-9]|7[03469]|8[0-4679])|8(?:0[01589]|1[0-479]|2[236-9]|3[0479]|4[0-68]|5[0-579]6[05789]7[12569]|8[0124-9]|9[02-9])|9","7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[134679]|5[0-489]|7[3679]|8[3-9]|9[689])|4(?:0[4579]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|3[5-9]|42|60|9[5-9])|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7|9[013-9]))|8(?:0[01589]|1(?:[024]|15|30|7[19]|97)|2(?:[2369]|7[0135]|8[67])|3(?:0[235-8]|4[179]|74|90)|4(?:[02-58]|10|6[09])|5(?:0[079]|[19]1|2|30|4[47]|53|7[45])|6(?:[0589]|70)|7(?:1[24]|[2569])|8(?:[07-9]|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]|2[35-9]|3[09]|4[038]|6[0-27-9]))|9"]
,"IN",91,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{6})","$1 $2 $3",["7(?:2[0579]|3[057-9]|4[0-389]|5[024-9]|6[0-35-9]|7[03469]|8[0-4679])|8(?:0[01589]|1[0-479]|2[236-9]|3[0479]|4[0-68]|5[0-579]6[05789]7[12569]|8[0124-9]|9[02-9])|9","7(?:2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[13-9]|5[0-4789]|7[3679]|8[1-9]|9[689])|4(?:0[245789]|1[15-9]|[29][89]|39|8[389])|5(?:0[0-5789]|[47]9|[25]0|6[6-9]|[89][7-9])|6(?:0[027]|12|20|3[19]|5[45]|6[5-9]|7[679]|9[6-9])|7(?:0[27-9]|3[5-9]|42|60|9[5-9])|8(?:[03][07-9]|14|2[7-9]|4[25]|6[09]|7|9[013-9]))|8(?:0[01589]|1(?:[024]|1[56]|30|7[19]|97)|2(?:[2369]|7[01357]|8[567])|3(?:0[235-8]|4[14789]|74|90)|4(?:[02-58]|10|6[09])|5(?:0[079]|11|2|30|4[47]|53|7[45]|9[015])|6(?:[0589]|70)|7(?:1[24]|[2569])|8(?:[07-9]|17|2[024-8]|44|5[389]|6[0167])|9(?:[057-9]|2[35-9]|3[09]|4[03678]|6[0-46-9]))|9"]
,"0$1",""]
,[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79|80[2-46]"]
,"0$1",""]
@ -2007,7 +2011,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"IQ":[,[,,"[1-7]\\d{7,9}","\\d{6,10}"]
,[,,"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}","\\d{6,9}"]
,[,,"7[5-9]\\d{8}","\\d{10}"]
,[,,"7[3-9]\\d{8}","\\d{10}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2017,7 +2021,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([2-6]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"]
,"0$1",""]
,[,"(7[5-9]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["7"]
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -2043,7 +2047,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"IS":[,[,,"[4-9]\\d{6}|38\\d{7}","\\d{7,9}"]
,[,,"(?:4(?:1[0-245]|2[0-7]|[37][0-8]|4[0245]|5[0-356]|6\\d|8[0-46-8]|9[013-79])|5(?:05|[156]\\d|2[02578]|3[013-6]|4[03-6]|7[0-2578]|8[0-25-9]|9[013-689])|87[23])\\d{4}","\\d{7}"]
,[,,"38[59]\\d{6}|(?:6(?:1[014-8]|2[0-8]|3[0-27-9]|4[0-29]|5[029]|[67][0-69]|[89]\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}"]
,[,,"38[59]\\d{6}|(?:6(?:1[0-8]|2[0-8]|3[0-27-9]|4[0-29]|5[029]|[67][0-69]|[89]\\d)|7(?:5[057]|7[0-7])|8(?:2[0-5]|[469]\\d|5[1-9]))\\d{4}","\\d{7,9}"]
,[,,"800\\d{4}","\\d{7}"]
,[,,"90\\d{5}","\\d{7}"]
,[,,"NA","NA"]
@ -2103,7 +2107,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
,[,,"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027]|2[3-5]|34|[45]0|63|7[05]|8[04]|9[4-9])7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468]))\\d{4}","\\d{7}(?:\\d{3})?"]
,[,,"876(?:(?:2[178]|[348]\\d|)\\d|5(?:27|66|[78]\\d)|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}"]
,[,,"876(?:2(?:[178]\\d|99)|[348]\\d{2}|5(?:08|27|66|[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"]
@ -2169,7 +2173,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"KE":[,[,,"\\d{6,10}","\\d{4,10}"]
,[,,"(?:20|4[0-6]|5\\d|6[0-24-9])\\d{4,7}","\\d{4,9}"]
,[,,"7(?:0[0-3]|[123]\\d|5[0-3]|7[0-4])\\d{6}","\\d{9}"]
,[,,"7(?:0[0-5]|[123]\\d|5[0-3]|7[0-5])\\d{6}","\\d{9}"]
,[,,"8(?:00|88)\\d{6,7}","\\d{9,10}"]
,[,,"9(?:00|1)\\d{6,7}","\\d{8,10}"]
,[,,"NA","NA"]
@ -2186,7 +2190,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"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}"]
,[,,"5[124-7]\\d{7}|7(?:0[0-357-9]|7\\d)\\d{6}","\\d{9}"]
,[,,"800\\d{6,7}","\\d{9,10}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2205,7 +2209,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"KH":[,[,,"[1-9]\\d{7,9}","\\d{6,10}"]
,[,,"(?:2[3-6]|3[2-6]|4[2-4]|[567][2-5])[2-46-9]\\d{5}","\\d{6,8}"]
,[,,"(?:(?: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}"]
,[,,"(?:(?:1[0-35-9]|6[6-9]|7[06-89]|9\\d)[1-9]|8(?:0[89]|5[2-689]|8\\d{2}|[13469]\\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"]
@ -2279,7 +2283,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}","\\d{8}"]
,[,,"NA","NA"]
]
,"KR":[,[,,"[1-79]\\d{3,9}|8\\d{8}","\\d{4,10}"]
,"KR":[,[,,"[1-7]\\d{3,9}|8\\d{8}","\\d{4,10}"]
,[,,"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})","\\d{4,10}"]
,[,,"1[0-25-9]\\d{7,8}","\\d{9,10}"]
,[,,"80\\d{7}","\\d{9}"]
@ -2289,7 +2293,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"70\\d{8}","\\d{10}"]
,"KR",82,"00(?:[124-68]|[37]\\d{2})","0",,,"0(8[1-46-8]|85\\d{2})?",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["1(?:0|1[19]|[69]9|5[458])|[57]0","1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"]
,"0$1","0$CC-$1"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-9][1-9][2-9]","1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-9][1-9][2-9]"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]","1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]"]
,"0$1","0$CC-$1"]
,[,"(\\d{3})(\\d)(\\d{4})","$1-$2-$3",["131","1312"]
,"0$1","0$CC-$1"]
@ -2305,7 +2309,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1","0$CC-$1"]
,[,"(\\d)(\\d{3,4})","$1-$2",["21[0-46-9]"]
,"0$1","0$CC-$1"]
,[,"(\\d{2})(\\d{3,4})","$1-$2",["[3-9][1-9]1","[3-9][1-9]1(?:[0-46-9])"]
,[,"(\\d{2})(\\d{3,4})","$1-$2",["[3-6][1-9]1","[3-6][1-9]1(?:[0-46-9])"]
,"0$1","0$CC-$1"]
,[,"(\\d{4})(\\d{4})","$1-$2",["1(?:5[46-9]|6[04678])","1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88))"]
,"$1","0$CC-$1"]
@ -2357,7 +2361,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"LA":[,[,,"[2-57]\\d{7,9}","\\d{6,10}"]
,[,,"(?:[2-57]1|54)\\d{6}","\\d{6,8}"]
,[,,"20(?:2[23]|5[4-6]|77|9[89])\\d{6}","\\d{10}"]
,[,,"20(?:2[23]|5[4-68]|7[78]|9[7-9])\\d{6}","\\d{10}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2374,7 +2378,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[167]))\\d{5}","\\d{7,8}"]
,[,,"(?:3\\d|7(?:[01]\\d|6[136-9]))\\d{5}","\\d{7,8}"]
,[,,"NA","NA"]
,[,,"9[01]\\d{6}","\\d{8}"]
,[,,"8[01]\\d{6}","\\d{8}"]
@ -2382,7 +2386,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[167])"]
,[,"([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[89][01]|7(?:[01]|6[136-9])"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -2439,9 +2443,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"LR":[,[,,"(?:[279]\\d|[4-6]|[38]\\d{2})\\d{6}","\\d{7,9}"]
,"LR":[,[,,"(?:[29]\\d|[4-6]|7\\d{1,2}|[38]\\d{2})\\d{6}","\\d{7,9}"]
,[,,"2\\d{7}","\\d{8}"]
,[,,"(?:4[67]|5\\d|6[4-8]|7\\d{2}|880\\d)\\d{5}","\\d{7,9}"]
,[,,"(?:4[67]|5\\d|6[4-8]|7(?:76\\d|\\d{2})|880\\d)\\d{5}","\\d{7,9}"]
,[,,"NA","NA"]
,[,,"90\\d{6}","\\d{8}"]
,[,,"NA","NA"]
@ -2449,6 +2453,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"33200\\d{4}","\\d{9}"]
,"LR",231,"00","0",,,"0",,,,[[,"([279]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[279]"]
,"0$1",""]
,[,"(7\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7"]
,"0$1",""]
,[,"([4-6])(\\d{3})(\\d{3})","$1 $2 $3",["[4-6]"]
,"0$1",""]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[38]"]
@ -2552,7 +2558,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MA":[,[,,"[5689]\\d{8}","\\d{9}"]
,[,,"5(?:2(?:(?:[015-7]\\d|2[2-9]|3[2-57]|4[2-8]|8[235-9]|)\\d|9(?:0\\d|[89]0))|3(?:(?:[0-4]\\d|[57][2-9]|6[235-8]|9[3-9])\\d|8(?:0\\d|[89]0)))\\d{4}","\\d{9}"]
,[,,"6(?:0[06]|[14-7]\\d|2[236]|33|99)\\d{6}","\\d{9}"]
,[,,"6(?:0[0-36]|[14-7]\\d|2[236]|3[348]|99)\\d{6}","\\d{9}"]
,[,,"80\\d{7}","\\d{9}"]
,[,,"89\\d{7}","\\d{9}"]
,[,,"NA","NA"]
@ -2592,7 +2598,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MD":[,[,,"[256-9]\\d{7}","\\d{8}"]
,[,,"(?:2(?:1[0569]|2\\d|3[015-7]|4[1-46-9]|5[0-24689]|6[2-589]|7[1-37]|9[1347-9])|5(?:33|5[257]))\\d{5}","\\d{5,8}"]
,[,,"(?:6(?:0[0-3]|50|7[12]|[89]\\d)|7(?:80|9\\d))\\d{5}","\\d{8}"]
,[,,"(?:6(?:50|7[1-4]|[089]\\d)|7[89]\\d)\\d{5}","\\d{8}"]
,[,,"800\\d{5}","\\d{8}"]
,[,,"90[056]\\d{5}","\\d{8}"]
,[,,"808\\d{5}","\\d{8}"]
@ -2687,7 +2693,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"ML":[,[,,"[246-8]\\d{7}","\\d{8}"]
,[,,"(?:2(?:0(?:2[0-589]|7[027-9])|1(?:2[5-7]|[3-689]\\d))|442\\d)\\d{4}","\\d{8}"]
,[,,"(?:6(?:[569]\\d)|7(?:[08][1-9]|[3579][0-4]|4[014-7]|6\\d))\\d{5}","\\d{8}"]
,[,,"(?:6(?:[3569]\\d)|7(?:[08][1-9]|[3579][0-4]|4[014-7]|[16]\\d))\\d{5}","\\d{8}"]
,[,,"800\\d{5}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2749,7 +2755,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MO":[,[,,"[268]\\d{7}","\\d{8}"]
,[,,"(?:28[2-57-9]|8[2-57-9]\\d)\\d{5}","\\d{8}"]
,[,,"6[26]\\d{6}","\\d{8}"]
,[,,"6[236]\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -2891,9 +2897,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"01 $1",""]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]
,"01 $1",""]
,[,"(1)([358]\\d)(\\d{4})(\\d{4})","045 $2 $3 $4",["1(?:33|55|81)"]
,[,"(1)([358]\\d)(\\d{4})(\\d{4})","044 $2 $3 $4",["1(?:33|55|81)"]
,"$1",""]
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","045 $2 $3 $4",["1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","044 $2 $3 $4",["1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]
,"$1",""]
]
,[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81"]
@ -2911,7 +2917,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"MY":[,[,,"[13-9]\\d{7,9}","\\d{6,10}"]
,[,,"(?:3\\d{2}|[4-79]\\d|8[2-9])\\d{6}","\\d{6,9}"]
,[,,"1[0-46-9]\\d{7}","\\d{9}"]
,[,,"1(?:[02-46-9][2-9]|11\\d)\\d{6}","\\d{9,10}"]
,[,,"1[38]00\\d{6}","\\d{10}"]
,[,,"1600\\d{6}","\\d{10}"]
,[,,"NA","NA"]
@ -2921,10 +2927,12 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"(3)(\\d{4})(\\d{4})","$1-$2 $3",["3"]
,"0$1",""]
,[,"([18]\\d)(\\d{3})(\\d{3,4})","$1-$2 $3",["1[0-46-9][1-9]|8"]
,[,"([18]\\d)(\\d{3})(\\d{3,4})","$1-$2 $3",["1[02-46-9][1-9]|8"]
,"0$1",""]
,[,"(1)([36-8]00)(\\d{2})(\\d{4})","$1-$2-$3-$4",["1[36-8]0"]
,"",""]
,[,"(11)(\\d{4})(\\d{4})","$1-$2 $3",["11"]
,"0$1",""]
,[,"(154)(\\d{3})(\\d{4})","$1-$2 $3",["15"]
,"0$1",""]
]
@ -2986,7 +2994,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"NE":[,[,,"[029]\\d{7}","\\d{8}"]
,[,,"2(?:0(?:20|3[1-7]|4[134]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}","\\d{8}"]
,[,,"9[03467]\\d{6}","\\d{8}"]
,[,,"9[0134678]\\d{6}","\\d{8}"]
,[,,"08\\d{6}","\\d{8}"]
,[,,"09\\d{6}","\\d{8}"]
,[,,"NA","NA"]
@ -3020,7 +3028,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"NG":[,[,,"[1-69]\\d{5,8}|[78]\\d{5,13}","\\d{5,14}"]
,[,,"[12]\\d{6,7}|9\\d{7}|(?:4[023568]|5[02368]|6[02-469]|7[569]|8[2-9])\\d{6}|(?:4[47]|5[14579]|6[1578]|7[0-357])\\d{5,6}|(?:78|41)\\d{5}","\\d{5,9}"]
,[,,"(?:70(?:[3-9]\\d|2[1-9])|8(?:0[2-9]|1[23689])\\d)\\d{6}","\\d{10}"]
,[,,"(?:70(?:[3-9]\\d|2[1-9])|8(?:0[2-9]|1[0235689])\\d)\\d{6}","\\d{10}"]
,[,,"800\\d{7,11}","\\d{10,14}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3236,7 +3244,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PG":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"]
,[,,"(?:3\\d{2}|4[257]\\d|5[34]\\d|6(?:29|4[1-9])|85[02-46-9]|9[78]\\d)\\d{4}","\\d{7}"]
,[,,"(?:68|7(?:[126]\\d|3[1-9]))\\d{5}","\\d{7,8}"]
,[,,"(?:68|7[1236]\\d)\\d{5}","\\d{7,8}"]
,[,,"180\\d{4}","\\d{7}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3253,7 +3261,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PH":[,[,,"[2-9]\\d{7,9}|1800\\d{7,9}","\\d{7,13}"]
,[,,"(?:2|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578]|8[2-8])\\d{7}","\\d{7,9}"]
,[,,"9(?:0[5-9]|1[025-9]|2[0-36-9]|3[0235-9]|4[89]|7[349]|89|9[49])\\d{7}","\\d{10}"]
,[,,"9(?:0[5-9]|1[025-9]|2[0-36-9]|3[02-9]|4[236-9]|7[349]|89|9[49])\\d{7}","\\d{10}"]
,[,,"1800\\d{7,9}","\\d{11,13}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3280,7 +3288,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-7]|64)\\d{7}","\\d{10}"]
,[,,"3(?:0\\d|1[2-5]|2[1-5]|3[1-6]|4[1-7]|64)\\d{7}","\\d{10}"]
,[,,"800\\d{5}","\\d{8}"]
,[,,"900\\d{5}","\\d{8}"]
,[,,"NA","NA"]
@ -3399,7 +3407,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PY":[,[,,"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}","\\d{5,9}"]
,[,,"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}","\\d{5,9}"]
,[,,"9(?:61|7[12356]|8[1-5]|9[1235])\\d{6}","\\d{9}"]
,[,,"9(?:61|7[1-6]|8[1-5]|9[1-5])\\d{6}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3418,11 +3426,11 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"[2-9]0\\d{4,7}","\\d{5,9}"]
,[,,"[2-9]0\\d{4,7}","\\d{6,9}"]
]
,"QA":[,[,,"[3-8]\\d{6,7}","\\d{7,8}"]
,[,,"44\\d{6}","\\d{7,8}"]
,[,,"(?:33|55|66|77)\\d{6}","\\d{7,8}"]
,[,,"(?:3[03]|55|66|7[07])\\d{6}","\\d{7,8}"]
,[,,"800\\d{4}","\\d{7,8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3531,7 +3539,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"SA":[,[,,"[1-9]\\d{7,10}","\\d{7,11}"]
,[,,"(?:1[24-7]|2[24-8]|3[35-8]|4[34-68]|6[2-5]|7[235-7])\\d{6}","\\d{7,8}"]
,[,,"(?:5[013-69]\\d|8111)\\d{6}","\\d{9,10}"]
,[,,"(?:5[013-689]\\d|8111)\\d{6}","\\d{9,10}"]
,[,,"800\\d{7}","\\d{10}"]
,[,,"9200\\d{7}","\\d{11}"]
,[,,"NA","NA"]
@ -3583,7 +3591,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"SD":[,[,,"[19]\\d{8}","\\d{9}"]
,[,,"1(?:[25]\\d|8[3567])\\d{6}","\\d{9}"]
,[,,"9[1259]\\d{7}","\\d{9}"]
,[,,"9[01259]\\d{7}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3643,7 +3651,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"SG":[,[,,"[36]\\d{7}|[17-9]\\d{7,10}","\\d{8,11}"]
,[,,"6[1-8]\\d{6}","\\d{8}"]
,[,,"(?:8[1-5]|9[0-8])\\d{6}","\\d{8}"]
,[,,"(?:8[1-6]|9[0-8])\\d{6}","\\d{8}"]
,[,,"1?800\\d{7}","\\d{10,11}"]
,[,,"1900\\d{7}","\\d{11}"]
,[,,"NA","NA"]
@ -3768,7 +3776,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,1]
,"SN":[,[,,"[37]\\d{8}","\\d{9}"]
,[,,"3(?:010|3(?:8[1-9]|9[2-9]))\\d{5}","\\d{9}"]
,[,,"7(?:0[1256]0|6(?:1[23]|2[89]|3[3489]|4[6-9]|5[1-389]|6[5-9]|7[45]|8[3-8])|7(?:01|1[014-8]|[2-79]\\d|8[019]))\\d{5}","\\d{9}"]
,[,,"7(?:0[1256]0|6(?:1[23]|2[89]|3[3489]|4[6-9]|5[1-9]|6[3-9]|7[45]|8[3-8])|7(?:01|[12-79]\\d|8[0139]))\\d{5}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3895,7 +3903,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"TD":[,[,,"[2679]\\d{7}","\\d{8}"]
,[,,"22(?:[3789]0|5[0-5]|6[89])\\d{4}","\\d{8}"]
,[,,"(?:6(?:3[0-7]|6\\d)|77\\d|9(?:5[0-4]|9\\d))\\d{5}","\\d{8}"]
,[,,"(?:6[36]\\d|77\\d|9(?:5[0-4]|9\\d))\\d{5}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3907,24 +3915,23 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"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}"]
,"TG":[,[,,"[29]\\d{7}","\\d{8}"]
,[,,"2(?:2[2-7]|3[23]|44|55|66|77)\\d{5}","\\d{8}"]
,[,,"9[0-289]\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"TG",228,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",,"",""]
,[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
,"TG",228,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
,1]
,"TH":[,[,,"[2-8]\\d{7,8}|1\\d{9}","\\d{8,10}"]
,[,,"(?:2[1-9]|3[24-9]|4[2-5]|5[3-6]|7[3-7])\\d{6}","\\d{8}"]
,[,,"8\\d{8}","\\d{9}"]
]
,"TH":[,[,,"[2-9]\\d{7,8}|1\\d{9}","\\d{8,10}"]
,[,,"(?:2[1-9]|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}","\\d{8}"]
,[,,"[89]\\d{8}","\\d{9}"]
,[,,"1800\\d{6}","\\d{10}"]
,[,,"1900\\d{6}","\\d{10}"]
,[,,"NA","NA"]
@ -3934,7 +3941,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([3-7]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[3-7]"]
,"0$1",""]
,[,"(8)(\\d{4})(\\d{4})","$1 $2 $3",["8"]
,[,"([89])(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]
,"0$1",""]
,[,"(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3",["1"]
,"$1",""]
@ -4004,15 +4011,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"TN":[,[,,"[247-9]\\d{7}","\\d{8}"]
,"TN":[,[,,"[2457-9]\\d{7}","\\d{8}"]
,[,,"7\\d{7}","\\d{8}"]
,[,,"(?:[29]\\d|4[01])\\d{6}","\\d{8}"]
,[,,"(?:[29]\\d|4[01]|5[01258]|)\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"8[028]\\d{6}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"TN",216,"00",,,,,,,,[[,"([247-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3",,"",""]
,"TN",216,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",,"",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -4058,7 +4065,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"TT":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
,[,,"868(?:2(?:01|2[1-5])|6(?:07|1[4-6]|2[1-9]|[3-6]\\d|7[0-79]|9[0-8])|82[12])\\d{4}","\\d{7}(?:\\d{3})?"]
,[,,"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}"]
,[,,"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(?:03|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}"]
,[,,"NA","NA"]
@ -4137,7 +4144,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"UG":[,[,,"\\d{9}","\\d{5,9}"]
,[,,"3\\d{8}|4(?:[1-6]\\d|7[136]|8[1356]|96)\\d{6}|20(?:0\\d|24)\\d{5}","\\d{5,9}"]
,[,,"7(?:[15789]\\d|0[0-4])\\d{6}","\\d{9}"]
,[,,"7(?:[15789]\\d|0[0-7])\\d{6}","\\d{9}"]
,[,,"800[123]\\d{5}","\\d{9}"]
,[,,"90[123]\\d{6}","\\d{9}"]
,[,,"NA","NA"]
@ -4345,7 +4352,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"YE":[,[,,"[1-7]\\d{6,8}","\\d{6,9}"]
,[,,"(?:1(?:7\\d|[2-68])|2[2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}","\\d{6,8}"]
,[,,"7[137]\\d{7}","\\d{9}"]
,[,,"7[0137]\\d{7}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -4353,7 +4360,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,"YE",967,"00","0",,,"0",,,,[[,"([1-7])(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7[24-68]"]
,"0$1",""]
,[,"(7[137]\\d)(\\d{3})(\\d{3})","$1 $2 $3",["7[137]"]
,[,"(7\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7[0137]"]
,"0$1",""]
]
,,[,,"NA","NA"]
@ -4372,9 +4379,9 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,"269|63",[,,"NA","NA"]
,[,,"NA","NA"]
]
,"ZA":[,[,,"[1-578]\\d{8}","\\d{8,9}"]
,"ZA":[,[,,"[1-5]\\d{8}|(?:7\\d{4,8}|8[1-5789]\\d{3,7})|8[06]\\d{7}","\\d{5,9}"]
,[,,"(?:1[0-8]|2[1-478]|3[1-69]|4\\d|5[1346-8])\\d{7}","\\d{8,9}"]
,[,,"(?:7[1-4689]|8[1-5789])\\d{7}","\\d{9}"]
,[,,"(?:7[1-4689]|8[1-5789])\\d{3,7}","\\d{5,9}"]
,[,,"80\\d{7}","\\d{9}"]
,[,,"86[1-9]\\d{6}","\\d{9}"]
,[,,"860\\d{6}","\\d{9}"]
@ -4384,6 +4391,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1",""]
,[,"([1-578]\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[1-57]|8(?:[0-57-9]|6[1-9])"]
,"0$1",""]
,[,"(\\d{2})(\\d{3,4})","$1 $2",["7|8[1-5789]"]
,"0$1",""]
,[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["7|8[1-5789]"]
,"0$1",""]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -4391,7 +4402,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"ZM":[,[,,"[289]\\d{8}","\\d{9}"]
,[,,"21[1-8]\\d{6}","\\d{9}"]
,[,,"9(?:55|6[3-9]|7[4-9])\\d{6}","\\d{9}"]
,[,,"9(?:5[05]|6[1-9]|7[13-9])\\d{6}","\\d{9}"]
,[,,"800\\d{6}","\\d{9}"]
,[,,"NA","NA"]
,[,,"NA","NA"]


+ 33
- 2
javascript/i18n/phonenumbers/phonenumberutil.js View File

@ -1183,6 +1183,13 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.isValidRegionCode_ =
i18n.phonenumbers.PhoneNumberUtil.prototype.format =
function(number, numberFormat) {
if (number.getNationalNumber() == 0 && number.hasRawInput()) {
/** @type {string} */
var rawInput = number.getRawInputOrDefault();
if (rawInput.length > 0) {
return rawInput;
}
}
/** @type {number} */
var countryCallingCode = number.getCountryCodeOrDefault();
/** @type {string} */
@ -2531,6 +2538,10 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.extractCountryCode =
/** @type {string} */
var fullNumberStr = fullNumber.toString();
if ((fullNumberStr.length == 0) || (fullNumberStr.charAt(0) == '0')) {
// Country codes do not begin with a '0'.
return 0;
}
/** @type {number} */
var potentialCountryCode;
/** @type {number} */
@ -3030,8 +3041,28 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.parseHelper_ =
/** @type {!goog.string.StringBuffer} */
var normalizedNationalNumber = new goog.string.StringBuffer();
/** @type {number} */
var countryCode = this.maybeExtractCountryCode(nationalNumber.toString(),
regionMetadata, normalizedNationalNumber, keepRawInput, phoneNumber);
var countryCode = 0;
/** @type {string} */
var nationalNumberStr = nationalNumber.toString();
try {
countryCode = this.maybeExtractCountryCode(nationalNumberStr,
regionMetadata, normalizedNationalNumber, keepRawInput, phoneNumber);
} catch (e) {
if (e == i18n.phonenumbers.Error.INVALID_COUNTRY_CODE &&
i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN_
.test(nationalNumberStr)) {
// Strip the plus-char, and try again.
nationalNumberStr = nationalNumberStr.replace(
i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN_, '');
countryCode = this.maybeExtractCountryCode(nationalNumberStr,
regionMetadata, normalizedNationalNumber, keepRawInput, phoneNumber);
if (countryCode == 0) {
throw e;
}
} else {
throw e;
}
}
if (countryCode != 0) {
/** @type {string} */
var phoneNumberRegion = this.getRegionCodeForCountryCode(countryCode);


+ 1
- 0
javascript/i18n/phonenumbers/phonenumberutil_test.html View File

@ -28,6 +28,7 @@ limitations under the License.
<script src="phonemetadata.pb.js"></script>
<script src="phonenumber.pb.js"></script>
<script src="metadatafortesting.js"></script>
<script src="regioncodefortesting.js"></script>
<script src="phonenumberutil.js"></script>
<script src="phonenumberutil_test.js"></script>
</head>


+ 47
- 29
javascript/i18n/phonenumbers/phonenumberutil_test.js View File

@ -18,11 +18,16 @@
/**
* @fileoverview Unit tests for the PhoneNumberUtil.
*
* Note that these tests use the metadata contained in metadatafortesting.js,
* not the normal metadata files, so should not be used for regression test
* purposes - these tests are illustrative only and test functionality.
*
* @author Nikolaos Trogkanis
*/
goog.require('goog.testing.jsunit');
goog.require('i18n.phonenumbers.PhoneNumberUtil');
goog.require('i18n.phonenumbers.RegionCode');
/** @type {i18n.phonenumbers.PhoneNumberUtil} */
@ -179,37 +184,24 @@ US_TOLLFREE.setCountryCode(1);
US_TOLLFREE.setNationalNumber(8002530000);
/**
* Enum containing string constants of region codes for easier testing.
*
* @enum {string}
*/
var RegionCode = {
AD: 'AD',
AO: 'AO',
AR: 'AR',
AU: 'AU',
BS: 'BS',
CS: 'CS',
DE: 'DE',
GB: 'GB',
IT: 'IT',
KR: 'KR',
MX: 'MX',
NZ: 'NZ',
PL: 'PL',
RE: 'RE',
SG: 'SG',
US: 'US',
YT: 'YT',
// Official code for the unknown region.
ZZ: 'ZZ'
};
/** @type {i18n.phonenumbers.PhoneNumber} */
var US_SPOOF = new i18n.phonenumbers.PhoneNumber();
US_SPOOF.setCountryCode(1);
US_SPOOF.setNationalNumber(0);
/** @type {i18n.phonenumbers.PhoneNumber} */
var US_SPOOF_WITH_RAW_INPUT = new i18n.phonenumbers.PhoneNumber();
US_SPOOF_WITH_RAW_INPUT.setCountryCode(1);
US_SPOOF_WITH_RAW_INPUT.setNationalNumber(0);
US_SPOOF_WITH_RAW_INPUT.setRawInput('000-000-0000');
var RegionCode = i18n.phonenumbers.RegionCode;
function testGetInstanceLoadUSMetadata() {
/** @type {i18n.phonenumbers.PhoneMetadata} */
var metadata = phoneUtil.getMetadataForRegion(RegionCode.US);
assertEquals('US', metadata.getId());
assertEquals(RegionCode.US, metadata.getId());
assertEquals(1, metadata.getCountryCode());
assertEquals('011', metadata.getInternationalPrefix());
assertTrue(metadata.hasNationalPrefix());
@ -234,7 +226,7 @@ function testGetInstanceLoadUSMetadata() {
function testGetInstanceLoadDEMetadata() {
/** @type {i18n.phonenumbers.PhoneMetadata} */
var metadata = phoneUtil.getMetadataForRegion(RegionCode.DE);
assertEquals('DE', metadata.getId());
assertEquals(RegionCode.DE, metadata.getId());
assertEquals(49, metadata.getCountryCode());
assertEquals('00', metadata.getInternationalPrefix());
assertEquals('0', metadata.getNationalPrefix());
@ -256,7 +248,7 @@ function testGetInstanceLoadDEMetadata() {
function testGetInstanceLoadARMetadata() {
/** @type {i18n.phonenumbers.PhoneMetadata} */
var metadata = phoneUtil.getMetadataForRegion(RegionCode.AR);
assertEquals('AR', metadata.getId());
assertEquals(RegionCode.AR, metadata.getId());
assertEquals(54, metadata.getCountryCode());
assertEquals('00', metadata.getInternationalPrefix());
assertEquals('0', metadata.getNationalPrefix());
@ -448,6 +440,12 @@ function testFormatUSNumber() {
phoneUtil.format(US_PREMIUM, PNF.INTERNATIONAL));
assertEquals('+1-900-253-0000',
phoneUtil.format(US_PREMIUM, PNF.RFC3966));
// Numbers with all zeros in the national number part will be formatted by
// using the raw_input if that is available no matter which format is
// specified.
assertEquals('000-000-0000',
phoneUtil.format(US_SPOOF_WITH_RAW_INPUT, PNF.NATIONAL));
assertEquals('0', phoneUtil.format(US_SPOOF, PNF.NATIONAL));
}
function testFormatBSNumber() {
@ -1682,6 +1680,14 @@ function testParseNationalNumber() {
NZ_NUMBER.equals(phoneUtil.parse('01164 3 331 6005', RegionCode.US)));
assertTrue(
NZ_NUMBER.equals(phoneUtil.parse('+64 3 331 6005', RegionCode.US)));
// We should ignore the leading plus here, since it is not followed by a valid
// country code but instead is followed by the IDD for the US.
assertTrue(
NZ_NUMBER.equals(phoneUtil.parse('+01164 3 331 6005', RegionCode.US)));
assertTrue(
NZ_NUMBER.equals(phoneUtil.parse('+0064 3 331 6005', RegionCode.NZ)));
assertTrue(
NZ_NUMBER.equals(phoneUtil.parse('+ 00 64 3 331 6005', RegionCode.NZ)));
/** @type {i18n.phonenumbers.PhoneNumber} */
var nzNumber = new i18n.phonenumbers.PhoneNumber();
@ -1937,6 +1943,18 @@ function testFailedParseOnInvalidNumbers() {
i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
e);
}
try {
/** @type {string} */
var plusAndIddAndInvalidCountryCode = '+ 00 210 3 331 6005';
phoneUtil.parse(plusAndIddAndInvalidCountryCode, RegionCode.NZ);
fail('This should not parse without throwing an exception.');
} catch (e) {
// Expected this exception. 00 is a correct IDD, but 210 is not a valid
// country code.
assertEquals('Wrong error type stored in exception.',
i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
e);
}
try {
/** @type {string} */
var someNumber = '123 456 7890';


+ 54
- 0
javascript/i18n/phonenumbers/regioncodefortesting.js View File

@ -0,0 +1,54 @@
/**
* @license
* Copyright (C) 2011 The Libphonenumber Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview String constants of region codes for testing.
* @author Nikolaos Trogkanis
*/
goog.provide('i18n.phonenumbers.RegionCode');
/**
* Enum containing string constants of region codes for easier testing.
*
* @enum {string}
*/
i18n.phonenumbers.RegionCode = {
AD: 'AD',
AO: 'AO',
AR: 'AR',
AU: 'AU',
BS: 'BS',
CA: 'CA',
CN: 'CN',
CS: 'CS',
DE: 'DE',
GB: 'GB',
IT: 'IT',
JP: 'JP',
KR: 'KR',
MX: 'MX',
NZ: 'NZ',
PL: 'PL',
RE: 'RE',
SG: 'SG',
US: 'US',
YT: 'YT',
// Official code for the unknown region.
ZZ: 'ZZ'
};

Loading…
Cancel
Save