Browse Source

JS: libphonenumber v5.1

pull/567/head
Lara Scheidegger 13 years ago
committed by Mihaela Rosca
parent
commit
a9c476d1ea
9 changed files with 601 additions and 211 deletions
  1. +1
    -1
      javascript/README
  2. +141
    -32
      javascript/i18n/phonenumbers/asyoutypeformatter.js
  3. +218
    -4
      javascript/i18n/phonenumbers/asyoutypeformatter_test.js
  4. +88
    -79
      javascript/i18n/phonenumbers/metadata.js
  5. +37
    -15
      javascript/i18n/phonenumbers/metadatafortesting.js
  6. +88
    -79
      javascript/i18n/phonenumbers/metadatalite.js
  7. +1
    -1
      javascript/i18n/phonenumbers/phonemetadata.pb.js
  8. +26
    -0
      javascript/i18n/phonenumbers/phonenumberutil.js
  9. +1
    -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 469).
The JavaScript library is ported from the Java implementation (revision 516).
When the Java project gets updated follow these steps to update the JavaScript
project:


+ 141
- 32
javascript/i18n/phonenumbers/asyoutypeformatter.js View File

@ -59,12 +59,12 @@ i18n.phonenumbers.AsYouTypeFormatter = function(regionCode) {
* @type {string}
* @private
*/
this.digitPlaceholder_ = '\u2008';
this.DIGIT_PLACEHOLDER_ = '\u2008';
/**
* @type {RegExp}
* @private
*/
this.digitPattern_ = new RegExp(this.digitPlaceholder_);
this.DIGIT_PATTERN_ = new RegExp(this.DIGIT_PLACEHOLDER_);
/**
* @type {string}
* @private
@ -107,10 +107,14 @@ i18n.phonenumbers.AsYouTypeFormatter = function(regionCode) {
*/
this.inputHasFormatting_ = false;
/**
* This is set to true when we know the user is entering a full national
* significant number, since we have either detected a national prefix or an
* international dialing prefix. When this is true, we will no longer use
* local number formatting patterns.
* @type {boolean}
* @private
*/
this.isInternationalFormatting_ = false;
this.isCompleteNumber_ = false;
/**
* @type {boolean}
* @private
@ -150,6 +154,11 @@ i18n.phonenumbers.AsYouTypeFormatter = function(regionCode) {
* @private
*/
this.prefixBeforeNationalNumber_ = new goog.string.StringBuffer();
/**
* @type {boolean}
* @private
*/
this.shouldAddSpaceAfterNationalPrefix_ = false;
/**
* This contains the national prefix that has been extracted. It contains only
* digits without formatting.
@ -181,6 +190,15 @@ i18n.phonenumbers.AsYouTypeFormatter = function(regionCode) {
};
/**
* Character used when appropriate to separate a prefix, such as a long NDD or a
* country calling code, from the national number.
* @const
* @type {string}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_ = ' ';
/**
* @const
* @type {i18n.phonenumbers.PhoneMetadata}
@ -233,6 +251,18 @@ i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_ = new RegExp(
'(\\$\\d[' + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + ']*)+$');
/**
* A set of characters that, if found in a national prefix formatting rules, are
* an indicator to us that we should separate the national prefix from the
* number when formatting.
* @const
* @type {RegExp}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_ =
/[- ]/;
/**
* This is the minimum length of national number accrued that is required to
* trigger the formatter. The first element of the leadingDigitsPattern of
@ -249,8 +279,8 @@ i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_ = 3;
* The metadata needed by this class is the same for all regions sharing the
* same country calling code. Therefore, we return the metadata for "main"
* region for this country calling code.
* @param {string} regionCode
* @return {i18n.phonenumbers.PhoneMetadata}
* @param {string} regionCode an ISO 3166-1 two-letter region code.
* @return {i18n.phonenumbers.PhoneMetadata} main metadata for this region.
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.getMetadataForRegion_ =
@ -295,6 +325,10 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.maybeCreateNewTemplate_ =
}
if (this.createFormattingTemplate_(numberFormat)) {
this.currentFormattingPattern_ = pattern;
this.shouldAddSpaceAfterNationalPrefix_ =
i18n.phonenumbers.AsYouTypeFormatter.
NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(
numberFormat.getNationalPrefixFormattingRule());
// With a new formatting template, the matched position using the old
// template needs to be reset.
this.lastMatchPosition_ = 0;
@ -307,7 +341,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.maybeCreateNewTemplate_ =
/**
* @param {string} leadingThreeDigits
* @param {string} leadingThreeDigits first three digits of entered number.
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ =
@ -315,7 +349,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ =
/** @type {Array.<i18n.phonenumbers.NumberFormat>} */
var formatList =
(this.isInternationalFormatting_ &&
(this.isCompleteNumber_ &&
this.currentMetaData_.intlNumberFormatCount() > 0) ?
this.currentMetaData_.intlNumberFormatArray() :
this.currentMetaData_.numberFormatArray();
@ -324,8 +358,13 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ =
for (var i = 0; i < formatListLength; ++i) {
/** @type {i18n.phonenumbers.NumberFormat} */
var format = formatList[i];
if (this.isFormatEligible_(format.getFormatOrDefault())) {
this.possibleFormats_.push(format);
if (this.isCompleteNumber_ ||
format.getNationalPrefixOptionalWhenFormatting() ||
this.phoneUtil_.formattingRuleHasFirstGroupOnly(
format.getNationalPrefixFormattingRule())) {
if (this.isFormatEligible_(format.getFormatOrDefault())) {
this.possibleFormats_.push(format);
}
}
}
this.narrowDownPossibleFormats_(leadingThreeDigits);
@ -445,8 +484,8 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.getFormattingTemplate_ =
/** @type {string} */
var template = aPhoneNumber.replace(new RegExp(numberPattern, 'g'),
numberFormat);
// Replaces each digit with character digitPlaceholder
template = template.replace(new RegExp('9', 'g'), this.digitPlaceholder_);
// Replaces each digit with character DIGIT_PLACEHOLDER
template = template.replace(new RegExp('9', 'g'), this.DIGIT_PLACEHOLDER_);
return template;
};
@ -468,9 +507,10 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.clear = function() {
this.inputHasFormatting_ = false;
this.positionToRemember_ = 0;
this.originalPosition_ = 0;
this.isInternationalFormatting_ = false;
this.isCompleteNumber_ = false;
this.isExpectingCountryCallingCode_ = false;
this.possibleFormats_ = [];
this.shouldAddSpaceAfterNationalPrefix_ = false;
if (this.currentMetaData_ != this.defaultMetaData_) {
this.currentMetaData_ = this.getMetadataForRegion_(this.defaultCountry_);
}
@ -549,8 +589,12 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
}
} else if (this.ableToExtractLongerNdd_()) {
// Add an additional space to separate long NDD and national significant
// number for readability.
this.prefixBeforeNationalNumber_.append(' ');
// number for readability. We don't set shouldAddSpaceAfterNationalPrefix_
// to true, since we don't want this to change later when we choose
// formatting templates.
this.prefixBeforeNationalNumber_.append(
i18n.phonenumbers.AsYouTypeFormatter.
SEPARATOR_BEFORE_NATIONAL_NUMBER_);
return this.attemptToChoosePatternWithPrefixExtracted_();
}
return this.accruedInput_.toString();
@ -598,7 +642,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
return this.inputAccruedNationalNumber_();
}
return this.ableToFormat_ ?
this.prefixBeforeNationalNumber_.toString() + tempNationalNumber :
this.appendNationalNumber_(tempNationalNumber) :
this.accruedInput_.toString();
} else {
return this.attemptToChooseFormattingPattern_();
@ -671,6 +715,9 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.isDigitOrLeadingPlusSign_ =
/**
* Check to see if there is an exact pattern match for these digits. If so, we
* should use this instead of any other formatting template whose
* leadingDigitsPattern also matches the input.
* @return {string}
* @private
*/
@ -683,22 +730,57 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToFormatAccruedDigits_ =
var possibleFormatsLength = this.possibleFormats_.length;
for (var i = 0; i < possibleFormatsLength; ++i) {
/** @type {i18n.phonenumbers.NumberFormat} */
var numFormat = this.possibleFormats_[i];
var numberFormat = this.possibleFormats_[i];
/** @type {string} */
var pattern = numFormat.getPatternOrDefault();
var pattern = numberFormat.getPatternOrDefault();
/** @type {RegExp} */
var patternRegExp = new RegExp('^(?:' + pattern + ')$');
if (patternRegExp.test(nationalNumber)) {
this.shouldAddSpaceAfterNationalPrefix_ =
i18n.phonenumbers.AsYouTypeFormatter.
NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(
numberFormat.getNationalPrefixFormattingRule());
/** @type {string} */
var formattedNumber = nationalNumber.replace(new RegExp(pattern, 'g'),
numFormat.getFormat());
return this.prefixBeforeNationalNumber_.toString() + formattedNumber;
numberFormat.getFormat());
return this.appendNationalNumber_(formattedNumber);
}
}
return '';
};
/**
* Combines the national number with any prefix (IDD/+ and country code or
* national prefix) that was collected. A space will be inserted between them if
* the current formatting template indicates this to be suitable.
* @param {string} nationalNumber
* @return {string}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.appendNationalNumber_ =
function(nationalNumber) {
/** @type {number} */
var prefixBeforeNationalNumberLength =
this.prefixBeforeNationalNumber_.getLength();
if (this.shouldAddSpaceAfterNationalPrefix_ &&
prefixBeforeNationalNumberLength > 0 &&
this.prefixBeforeNationalNumber_.toString().charAt(
prefixBeforeNationalNumberLength - 1) !=
i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_) {
// We want to add a space after the national prefix if the national prefix
// formatting rule indicates that this would normally be done, with the
// exception of the case where we already appended a space because the NDD
// was surprisingly long.
return this.prefixBeforeNationalNumber_ +
i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_ +
nationalNumber;
} else {
return this.prefixBeforeNationalNumber_ + nationalNumber;
}
};
/**
* Returns the current position in the partially formatted phone number of the
* character which was previously passed in as the parameter of
@ -755,7 +837,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
return this.maybeCreateNewTemplate_() ?
this.inputAccruedNationalNumber_() : this.accruedInput_.toString();
} else {
return this.prefixBeforeNationalNumber_.toString() + nationalNumber;
return this.appendNationalNumber_(nationalNumber);
}
};
@ -782,7 +864,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.inputAccruedNationalNumber_ =
this.inputDigitHelper_(nationalNumber.charAt(i));
}
return this.ableToFormat_ ?
this.prefixBeforeNationalNumber_.toString() + tempNationalNumber :
this.appendNationalNumber_(tempNationalNumber) :
this.accruedInput_.toString();
} else {
return this.prefixBeforeNationalNumber_.toString();
@ -790,6 +872,29 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.inputAccruedNationalNumber_ =
};
/**
* Returns true if the current country is a NANPA country and the national
* number begins with the national prefix.
* @return {boolean}
* @private
*/
i18n.phonenumbers.AsYouTypeFormatter.prototype.
isNanpaNumberWithNationalPrefix_ = function() {
// For NANPA numbers beginning with 1[2-9], treat the 1 as the national
// prefix. The reason is that national significant numbers in NANPA always
// start with [2-9] after the national prefix. Numbers beginning with 1[01]
// can only be short/emergency numbers, which don't need the national prefix.
if (this.currentMetaData_.getCountryCode() != 1) {
return false;
}
/** @type {string} */
var nationalNumber = this.nationalNumber_.toString();
return (nationalNumber.charAt(0) == '1') &&
(nationalNumber.charAt(1) != '0') &&
(nationalNumber.charAt(1) != '1');
};
/**
* Returns the national prefix extracted, or an empty string if it is not
* present.
@ -803,11 +908,11 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
var nationalNumber = this.nationalNumber_.toString();
/** @type {number} */
var startOfNationalNumber = 0;
if (this.currentMetaData_.getCountryCode() == 1 &&
nationalNumber.charAt(0) == '1') {
if (this.isNanpaNumberWithNationalPrefix_()) {
startOfNationalNumber = 1;
this.prefixBeforeNationalNumber_.append('1 ');
this.isInternationalFormatting_ = true;
this.prefixBeforeNationalNumber_.append('1').append(
i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_);
this.isCompleteNumber_ = true;
} else if (this.currentMetaData_.hasNationalPrefixForParsing()) {
/** @type {RegExp} */
var nationalPrefixForParsing = new RegExp(
@ -818,7 +923,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
// When the national prefix is detected, we use international formatting
// rules instead of national ones, because national formatting rules could
// contain local formatting rules for numbers entered without area code.
this.isInternationalFormatting_ = true;
this.isCompleteNumber_ = true;
startOfNationalNumber = m[0].length;
this.prefixBeforeNationalNumber_.append(nationalNumber.substring(0,
startOfNationalNumber));
@ -851,7 +956,7 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractIdd_ =
/** @type {Array.<string>} */
var m = accruedInputWithoutFormatting.match(internationalPrefix);
if (m != null && m[0] != null && m[0].length > 0) {
this.isInternationalFormatting_ = true;
this.isCompleteNumber_ = true;
/** @type {number} */
var startOfCountryCallingCode = m[0].length;
this.nationalNumber_.clear();
@ -862,7 +967,9 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractIdd_ =
accruedInputWithoutFormatting.substring(0, startOfCountryCallingCode));
if (accruedInputWithoutFormatting.charAt(0) !=
i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN) {
this.prefixBeforeNationalNumber_.append(' ');
this.prefixBeforeNationalNumber_.append(
i18n.phonenumbers.AsYouTypeFormatter.
SEPARATOR_BEFORE_NATIONAL_NUMBER_);
}
return true;
}
@ -905,7 +1012,8 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.
}
/** @type {string} */
var countryCodeString = '' + countryCode;
this.prefixBeforeNationalNumber_.append(countryCodeString).append(' ');
this.prefixBeforeNationalNumber_.append(countryCodeString).append(
i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_);
return true;
};
@ -955,11 +1063,12 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitHelper_ =
/** @type {string} */
var formattingTemplate = this.formattingTemplate_.toString();
if (formattingTemplate.substring(this.lastMatchPosition_)
.search(this.digitPattern_) >= 0) {
.search(this.DIGIT_PATTERN_) >= 0) {
/** @type {number} */
var digitPatternStart = formattingTemplate.search(this.digitPattern_);
var digitPatternStart = formattingTemplate.search(this.DIGIT_PATTERN_);
/** @type {string} */
var tempTemplate = formattingTemplate.replace(this.digitPattern_, nextChar);
var tempTemplate =
formattingTemplate.replace(this.DIGIT_PATTERN_, nextChar);
this.formattingTemplate_.clear();
this.formattingTemplate_.append(tempTemplate);
this.lastMatchPosition_ = digitPatternStart;


+ 218
- 4
javascript/i18n/phonenumbers/asyoutypeformatter_test.js View File

@ -96,6 +96,37 @@ function testTooLongNumberMatchingMultipleLeadingDigits() {
assertEquals('+819012345678901', f.inputDigit('1'));
}
function testCountryWithSpaceInNationalPrefixFormattingRule() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.BY);
assertEquals('8', f.inputDigit('8'));
assertEquals('88', f.inputDigit('8'));
assertEquals('881', f.inputDigit('1'));
assertEquals('8 819', f.inputDigit('9'));
assertEquals('8 8190', f.inputDigit('0'));
// The formatting rule for 5 digit numbers states that no space should be
// present after the national prefix.
assertEquals('881 901', f.inputDigit('1'));
assertEquals('8 819 012', f.inputDigit('2'));
// Too long, no formatting rule applies.
assertEquals('88190123', f.inputDigit('3'));
}
function testCountryWithSpaceInNationalPrefixFormattingRuleAndLongNdd() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.BY);
assertEquals('9', f.inputDigit('9'));
assertEquals('99', f.inputDigit('9'));
assertEquals('999', f.inputDigit('9'));
assertEquals('9999', f.inputDigit('9'));
assertEquals('99999 ', f.inputDigit('9'));
assertEquals('99999 1', f.inputDigit('1'));
assertEquals('99999 12', f.inputDigit('2'));
assertEquals('99999 123', f.inputDigit('3'));
assertEquals('99999 1234', f.inputDigit('4'));
assertEquals('99999 12 345', f.inputDigit('5'));
}
function testAYTFUS() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US);
@ -779,7 +810,7 @@ function testAYTFMultipleLeadingDigitPatterns() {
function testAYTFLongIDD_AU() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('AU');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.AU);
// 0011 1 650 253 2250
assertEquals('0', f.inputDigit('0'));
assertEquals('00', f.inputDigit('0'));
@ -837,7 +868,7 @@ function testAYTFLongIDD_AU() {
function testAYTFLongIDD_KR() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('KR');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.KR);
// 00300 1 650 253 2222
assertEquals('0', f.inputDigit('0'));
assertEquals('00', f.inputDigit('0'));
@ -859,7 +890,7 @@ function testAYTFLongIDD_KR() {
function testAYTFLongNDD_KR() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('KR');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.KR);
// 08811-9876-7890
assertEquals('0', f.inputDigit('0'));
assertEquals('08', f.inputDigit('8'));
@ -896,7 +927,7 @@ function testAYTFLongNDD_KR() {
function testAYTFLongNDD_SG() {
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter('SG');
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.SG);
// 777777 9876 7890
assertEquals('7', f.inputDigit('7'));
assertEquals('77', f.inputDigit('7'));
@ -913,3 +944,186 @@ function testAYTFLongNDD_SG() {
assertEquals('777777 9876 789', f.inputDigit('9'));
assertEquals('777777 9876 7890', f.inputDigit('0'));
}
function testAYTFShortNumberFormattingFix_AU() {
// For Australia, the national prefix is not optional when formatting.
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.AU);
// 1234567890 - For leading digit 1, the national prefix formatting rule has
// first group only.
assertEquals('1', f.inputDigit('1'));
assertEquals('12', f.inputDigit('2'));
assertEquals('123', f.inputDigit('3'));
assertEquals('1234', f.inputDigit('4'));
assertEquals('1234 5', f.inputDigit('5'));
assertEquals('1234 56', f.inputDigit('6'));
assertEquals('1234 567', f.inputDigit('7'));
assertEquals('1234 567 8', f.inputDigit('8'));
assertEquals('1234 567 89', f.inputDigit('9'));
assertEquals('1234 567 890', f.inputDigit('0'));
// +61 1234 567 890 - Test the same number, but with the country code.
f.clear();
assertEquals('+', f.inputDigit('+'));
assertEquals('+6', f.inputDigit('6'));
assertEquals('+61 ', f.inputDigit('1'));
assertEquals('+61 1', f.inputDigit('1'));
assertEquals('+61 12', f.inputDigit('2'));
assertEquals('+61 123', f.inputDigit('3'));
assertEquals('+61 1234', f.inputDigit('4'));
assertEquals('+61 1234 5', f.inputDigit('5'));
assertEquals('+61 1234 56', f.inputDigit('6'));
assertEquals('+61 1234 567', f.inputDigit('7'));
assertEquals('+61 1234 567 8', f.inputDigit('8'));
assertEquals('+61 1234 567 89', f.inputDigit('9'));
assertEquals('+61 1234 567 890', f.inputDigit('0'));
// 212345678 - For leading digit 2, the national prefix formatting rule puts
// the national prefix before the first group.
f.clear();
assertEquals('0', f.inputDigit('0'));
assertEquals('02', f.inputDigit('2'));
assertEquals('021', f.inputDigit('1'));
assertEquals('02 12', f.inputDigit('2'));
assertEquals('02 123', f.inputDigit('3'));
assertEquals('02 1234', f.inputDigit('4'));
assertEquals('02 1234 5', f.inputDigit('5'));
assertEquals('02 1234 56', f.inputDigit('6'));
assertEquals('02 1234 567', f.inputDigit('7'));
assertEquals('02 1234 5678', f.inputDigit('8'));
// 212345678 - Test the same number, but without the leading 0.
f.clear();
assertEquals('2', f.inputDigit('2'));
assertEquals('21', f.inputDigit('1'));
assertEquals('212', f.inputDigit('2'));
assertEquals('2123', f.inputDigit('3'));
assertEquals('21234', f.inputDigit('4'));
assertEquals('212345', f.inputDigit('5'));
assertEquals('2123456', f.inputDigit('6'));
assertEquals('21234567', f.inputDigit('7'));
assertEquals('212345678', f.inputDigit('8'));
// +61 2 1234 5678 - Test the same number, but with the country code.
f.clear();
assertEquals('+', f.inputDigit('+'));
assertEquals('+6', f.inputDigit('6'));
assertEquals('+61 ', f.inputDigit('1'));
assertEquals('+61 2', f.inputDigit('2'));
assertEquals('+61 21', f.inputDigit('1'));
assertEquals('+61 2 12', f.inputDigit('2'));
assertEquals('+61 2 123', f.inputDigit('3'));
assertEquals('+61 2 1234', f.inputDigit('4'));
assertEquals('+61 2 1234 5', f.inputDigit('5'));
assertEquals('+61 2 1234 56', f.inputDigit('6'));
assertEquals('+61 2 1234 567', f.inputDigit('7'));
assertEquals('+61 2 1234 5678', f.inputDigit('8'));
}
function testAYTFShortNumberFormattingFix_KR() {
// For Korea, the national prefix is not optional when formatting, and the
// national prefix formatting rule doesn't consist of only the first group.
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.KR);
// 111
assertEquals('1', f.inputDigit('1'));
assertEquals('11', f.inputDigit('1'));
assertEquals('111', f.inputDigit('1'));
// 114
f.clear();
assertEquals('1', f.inputDigit('1'));
assertEquals('11', f.inputDigit('1'));
assertEquals('114', f.inputDigit('4'));
// 13121234 - Test a mobile number without the national prefix. Even though it
// is not an emergency number, it should be formatted as a block.
f.clear();
assertEquals('1', f.inputDigit('1'));
assertEquals('13', f.inputDigit('3'));
assertEquals('131', f.inputDigit('1'));
assertEquals('1312', f.inputDigit('2'));
assertEquals('13121', f.inputDigit('1'));
assertEquals('131212', f.inputDigit('2'));
assertEquals('1312123', f.inputDigit('3'));
assertEquals('13121234', f.inputDigit('4'));
// +82 131-2-1234 - Test the same number, but with the country code.
f.clear();
assertEquals('+', f.inputDigit('+'));
assertEquals('+8', f.inputDigit('8'));
assertEquals('+82 ', f.inputDigit('2'));
assertEquals('+82 1', f.inputDigit('1'));
assertEquals('+82 13', f.inputDigit('3'));
assertEquals('+82 131', f.inputDigit('1'));
assertEquals('+82 131-2', f.inputDigit('2'));
assertEquals('+82 131-2-1', f.inputDigit('1'));
assertEquals('+82 131-2-12', f.inputDigit('2'));
assertEquals('+82 131-2-123', f.inputDigit('3'));
assertEquals('+82 131-2-1234', f.inputDigit('4'));
}
function testAYTFShortNumberFormattingFix_MX() {
// For Mexico, the national prefix is optional when formatting.
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.MX);
// 911
assertEquals('9', f.inputDigit('9'));
assertEquals('91', f.inputDigit('1'));
assertEquals('911', f.inputDigit('1'));
// 800 123 4567 - Test a toll-free number, which should have a formatting rule
// applied to it even though it doesn't begin with the national prefix.
f.clear();
assertEquals('8', f.inputDigit('8'));
assertEquals('80', f.inputDigit('0'));
assertEquals('800', f.inputDigit('0'));
assertEquals('800 1', f.inputDigit('1'));
assertEquals('800 12', f.inputDigit('2'));
assertEquals('800 123', f.inputDigit('3'));
assertEquals('800 123 4', f.inputDigit('4'));
assertEquals('800 123 45', f.inputDigit('5'));
assertEquals('800 123 456', f.inputDigit('6'));
assertEquals('800 123 4567', f.inputDigit('7'));
// +52 800 123 4567 - Test the same number, but with the country code.
f.clear();
assertEquals('+', f.inputDigit('+'));
assertEquals('+5', f.inputDigit('5'));
assertEquals('+52 ', f.inputDigit('2'));
assertEquals('+52 8', f.inputDigit('8'));
assertEquals('+52 80', f.inputDigit('0'));
assertEquals('+52 800', f.inputDigit('0'));
assertEquals('+52 800 1', f.inputDigit('1'));
assertEquals('+52 800 12', f.inputDigit('2'));
assertEquals('+52 800 123', f.inputDigit('3'));
assertEquals('+52 800 123 4', f.inputDigit('4'));
assertEquals('+52 800 123 45', f.inputDigit('5'));
assertEquals('+52 800 123 456', f.inputDigit('6'));
assertEquals('+52 800 123 4567', f.inputDigit('7'));
}
function testAYTFShortNumberFormattingFix_US() {
// For the US, an initial 1 is treated specially.
/** @type {i18n.phonenumbers.AsYouTypeFormatter} */
var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.US);
// 101 - Test that the initial 1 is not treated as a national prefix.
assertEquals('1', f.inputDigit('1'));
assertEquals('10', f.inputDigit('0'));
assertEquals('101', f.inputDigit('1'));
// 112 - Test that the initial 1 is not treated as a national prefix.
f.clear();
assertEquals('1', f.inputDigit('1'));
assertEquals('11', f.inputDigit('1'));
assertEquals('112', f.inputDigit('2'));
// 122 - Test that the initial 1 is treated as a national prefix.
f.clear();
assertEquals('1', f.inputDigit('1'));
assertEquals('12', f.inputDigit('2'));
assertEquals('1 22', f.inputDigit('2'));
}

+ 88
- 79
javascript/i18n/phonenumbers/metadata.js View File

@ -456,24 +456,24 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"]
,"0$1","",0]
]
,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"]
]
,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]","[68]"]
,"0$1","",0]
,[,"(9)(11)(\\d{4})(\\d{4})","$1 $2 $3-$4",["911"]
]
,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9(?:2[234689]|3[3-8])","9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))","9(?:2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[014-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49])))"]
]
,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"]
]
,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))","93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"]
,"0$1","",0]
,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9[23]"]
]
,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])","2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]
]
,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))"]
]
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"]
]
,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1","1"]
,"0$1","",0]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])","2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))","2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])","2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]
,"0$1","",0]
,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))","3(?:53|8[78])","3(?:537|8(?:73|88))"]
,"0$1","",0]
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]","[23]"]
,"0$1","",0]
]
,[,,"NA","NA"]
,,,[,,"810\\d{7}","\\d{10}",,,"8101234567"]
@ -687,7 +687,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"BF":[,[,,"[24-7]\\d{7}","\\d{8}"]
,[,,"(?:20(?:49|5[23]|9[016-9])|40(?:4[56]|5[4-6]|7[0179])|50[34]\\d)\\d{4}","\\d{8}",,,"20491234"]
,[,,"(?:6(?:0\\d|1[01]|6[0-4]|8[0-2])|7(?:[02-68]\\d|1[0-4689]|7[0-69]|9[0-689]))\\d{5}","\\d{8}",,,"70123456"]
,[,,"(?:6(?:[05]\\d|1[01]|6[0-7]|8[0-2])|7(?:[02-68]\\d|1[0-4689]|7[0-69]|9[0-689]))\\d{5}","\\d{8}",,,"70123456"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -709,17 +709,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,[,,"700\\d{5}","\\d{5,9}",,,"70012345"]
,[,,"NA","NA"]
,"BG",359,"00","0",,,"0",,,,[[,"(2)(\\d{5})","$1/$2",["29"]
,"BG",359,"00","0",,,"0",,,,[[,"(2)(\\d{5})","$1 $2",["29"]
,"0$1","",0]
,[,"(2)(\\d{3})(\\d{3,4})","$1/$2 $3",["2"]
,[,"(2)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"]
,"0$1","",0]
,[,"(\\d{3})(\\d{4})","$1/$2",["43[124-7]|70[1-9]"]
,[,"(\\d{3})(\\d{4})","$1 $2",["43[124-7]|70[1-9]"]
,"0$1","",0]
,[,"(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3",["43[124-7]|70[1-9]"]
,[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[124-7]|70[1-9]"]
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[78]00"]
,"0$1","",0]
,[,"(\\d{2})(\\d{3})(\\d{2,3})","$1/$2 $3",["[356]|7[1-9]|8[1-6]|9[1-7]"]
,[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|7[1-9]|8[1-6]|9[1-7]"]
,"0$1","",0]
,[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["48|8[7-9]|9[08]"]
,"0$1","",0]
@ -1184,22 +1184,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800"]
,"","",0]
]
,[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]"]
]
,[,"([48]00)(\\d{3})(\\d{4})","$1 $2 $3",["[48]00"]
]
,[,"(21)(\\d{4})(\\d{4,6})","$1 $2 $3",["21"]
]
,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]
]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]
]
,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]"]
]
,[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800"]
]
,[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]","80[2678]"]
,"0$1","$CC $1",1]
,[,"([48]00)(\\d{3})(\\d{4})","$1 $2 $3",["[48]00","[48]00"]
,"","",0]
,[,"(21)(\\d{4})(\\d{4,6})","$1 $2 $3",["21","21"]
,"0$1","$CC $1",1]
,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]","10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]
,"0$1","$CC $1",1]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898","3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"]
,"0$1","$CC $1",1]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])","3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]
,"0$1","$CC $1",1]
,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]","1[3-58]"]
,"","$CC $1",0]
,[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800","108","1080","10800"]
,"","",0]
]
,[,,"NA","NA"]
,,,[,,"(?:4|(?:10)?8)00\\d{7}","\\d{10,12}",,,"4001234567"]
@ -1222,10 +1222,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(1)(\\d{3})(\\d{7})","$1-$2-$3",["1(?:80|9[04])","1(?:800|9(?:0[01]|4[78]))"]
,"0$1","",0]
]
,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]
]
,[,"(\\d{3})(\\d{7})","$1 $2",["3"]
]
,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]","1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]
,"($1)","0$CC $1",0]
,[,"(\\d{3})(\\d{7})","$1 $2",["3","3"]
,"","0$CC $1",0]
,[,"(1)(\\d{3})(\\d{7})","$1 $2 $3",["1(?:80|9[04])","1(?:800|9(?:0[01]|4[78]))"]
]
]
@ -1464,7 +1464,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[569]|7[7-9])\\d{7}","\\d{9}",,,"551234567"]
,[,,"(?:5[56]|7[7-9])\\d{7}|6(?:[569]\\d|70)\\d{6}","\\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"]
@ -1500,10 +1500,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[247]|[356][2-8]"]
]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[356]9|[89]"]
]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]
]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[356]9|[89]","[356]9|[89]"]
,"0$1","",0]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1","1"]
,"$1","",0]
]
,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -1708,15 +1708,18 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,[,,"1(?:[578]|12)","\\d{2,3}",,,"112"]
,[,,"NA","NA"]
]
,"GA":[,[,,"[1-7]\\d{6}","\\d{7}"]
,[,,"1\\d{6}","\\d{7}",,,"1441234"]
,[,,"[2-7]\\d{6}","\\d{7}",,,"6031234"]
,"GA":[,[,,"[01]\\d{6,7}","\\d{7,8}"]
,[,,"1\\d{6}","\\d{7,8}",,,"1441234"]
,[,,"0[2-7]\\d{6}","\\d{7,8}",,,"06031234"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"GA",241,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"0$1","",0]
,"GA",241,"00","0",,,"0",,,,[[,"(1)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1"]
,"0$1","",0]
,[,"(0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]
,"","",0]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -2355,15 +2358,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,[,,"112","\\d{3}",,,"112"]
,[,,"388\\d{6}|(?:6(?:2[0-8]|49|8\\d)|8(?:2[6-9]|[38]\\d|50|7[014-9])|95[48])\\d{4}","\\d{7,9}",,,"388123456"]
]
,"IT":[,[,,"[0189]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})","\\d{6,11}"]
,[,,"0(?:[26]\\d{4,9}|[13-57-9](?:[0159]\\d{4,8}|[2-46-8]\\d{5,8}))","\\d{6,11}",,,"0212345678"]
,"IT":[,[,,"[01589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})","\\d{6,11}"]
,[,,"0(?:[26]\\d{4,9}|(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2346]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[34578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7})","\\d{6,11}",,,"0212345678"]
,[,,"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})","\\d{9,11}",,,"3123456789"]
,[,,"80(?:0\\d{6}|3\\d{3})","\\d{6,9}",,,"800123456"]
,[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|9\\d{6})","\\d{6,9}",,,"899123456"]
,[,,"84[78]\\d{6,7}","\\d{9,10}",,,"8481234567"]
,[,,"178\\d{6,7}","\\d{9,10}",,,"1781234567"]
,[,,"NA","NA"]
,"IT",39,"00",,,,,,,,[[,"(0[26])(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]"]
,[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|4(?:[0-4]\\d{2}|[5-9]\\d{4})|5(?:[0-4]\\d{2}|[5-9]\\d{6})|9\\d{6})","\\d{6,10}",,,"899123456"]
,[,,"84(?:[08]\\d{6}|[17]\\d{3})","\\d{6,9}",,,"848123456"]
,[,,"1(?:78\\d|99)\\d{6}","\\d{9,10}",,,"1781234567"]
,[,,"55\\d{8}","\\d{10}",,,"5512345678"]
,"IT",39,"00",,,,,,,,[[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|55"]
,"","",0]
,[,"(0[26])(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]
,"","",0]
@ -2371,21 +2374,21 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"","",0]
,[,"(0\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]"]
,"","",0]
,[,"(0\\d{2})(\\d{4,6})","$1 $2",["0[13-57-9][0159]"]
,[,"(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[245])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]
,"","",0]
,[,"(0\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["0[13-57-9][2-46-8]"]
,"","",0]
,[,"(0\\d{3})(\\d{4,6})","$1 $2",["0[13-57-9][2-46-8]"]
,[,"(0\\d{3})(\\d{2,6})","$1 $2",["0[13-57-9][2-46-8]"]
,"","",0]
,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13]|8(?:00|4[78]|99)"]
,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13]|8(?:00|4[08]|9[59])","[13]|8(?:00|4[08]|9(?:5[5-9]|9))"]
,"","",0]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3"]
,[,"(\\d{4})(\\d{4})","$1 $2",["894","894[5-9]"]
,"","",0]
,[,"(\\d{3})(\\d{3,6})","$1 $2",["8(?:03|92)"]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3"]
,"","",0]
]
,,[,,"NA","NA"]
,,,[,,"848\\d{6,7}","\\d{9,10}",,,"8481234567"]
,,,[,,"848\\d{6}","\\d{9}",,,"848123456"]
,[,,"NA","NA"]
,1,[,,"11[2358]","\\d{3}",,,"112"]
,[,,"NA","NA"]
@ -2439,14 +2442,14 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,[,,"1(?:12|91)|911","\\d{3}",,,"112"]
,[,,"NA","NA"]
]
,"JP":[,[,,"[1-9]\\d{8,9}|0(?:3\\d{9}|7\\d{5,7}|8\\d{7})","\\d{7,11}"]
,"JP":[,[,,"[1-9]\\d{8,9}|0(?:[36]\\d{7,14}|7\\d{5,7}|8\\d{7})","\\d{7,16}"]
,[,,"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\\d|[36][1-9]\\d|4(?:6[02-8]|[2-578]\\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\\d)|7(?:3[4-9]|4[02-9]|[25-9]\\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\\d)|9(?:[679][1-9]|[2-58]\\d))\\d{6}","\\d{9}",,,"312345678"]
,[,,"(?:[79]0\\d|80[1-9])\\d{7}","\\d{10}",,,"7012345678"]
,[,,"120\\d{6}|800\\d{7}|0(?:777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,10}",,,"120123456"]
,[,,"120\\d{6}|800\\d{7}|0(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,16}",,,"120123456"]
,[,,"990\\d{6}","\\d{9}",,,"990123456"]
,[,,"NA","NA"]
,[,,"60\\d{7}","\\d{9}",,,"601234567"]
,[,,"(?:037|50)\\d{8}","\\d{10,11}",,,"5012345678"]
,[,,"50\\d{8}","\\d{10}",,,"5012345678"]
,"JP",81,"010","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"]
,"0$1","",0]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"]
@ -2457,15 +2460,21 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["088"]
,"0$1","",0]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1-$2-$3",["037"]
,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{3})(\\d{5})(\\d{5,6})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{3})(\\d{6})(\\d{6,7})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]0|80[1-9]"]
,"0$1","",0]
,[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"]
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-9]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]
,"0$1","",0]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1|2(?:23|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)","1|2(?:23|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])","1|2(?:23|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)","1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])","1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["2(?:9[14-79]|74|[34]7|[56]9)|82|993"]
,"0$1","",0]
@ -2475,7 +2484,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1","",0]
]
,,[,,"20\\d{8}","\\d{10}",,,"2012345678"]
,,,[,,"0(?:37\\d{8}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,11}",,,"0777012"]
,,,[,,"0(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,16}",,,"0777012"]
,[,,"570\\d{6}","\\d{9}",,,"570123456"]
,1,[,,"11[09]","\\d{3}",,,"110"]
,[,,"NA","NA"]
@ -2643,7 +2652,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"KW":[,[,,"[12569]\\d{6,7}","\\d{7,8}"]
,[,,"(?:18\\d|2(?:[23]\\d{2}|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7])))\\d{4}","\\d{7,8}",,,"22345678"]
,[,,"(?:5(?:0[0-2568]|11|5\\d)|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[069])|9(?:0[09]|4[049]|6[69]|[79]\\d))\\d{5}","\\d{8}",,,"50012345"]
,[,,"(?:5(?:0[0-25-9]|11|5\\d)|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[069])|9(?:0[09]|4[049]|6[69]|[79]\\d))\\d{5}","\\d{8}",,,"50012345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3299,10 +3308,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(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","",0]
]
,[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]
]
,[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81","33|55|81"]
,"01 $1","",1]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]","[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]
,"01 $1","",1]
,[,"(1)([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3 $4",["1(?:33|55|81)"]
]
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]
@ -3669,7 +3678,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PF":[,[,,"[2-9]\\d{5}","\\d{6}"]
,[,,"(?:4(?:[02-9]\\d|1[02-9])|[5689]\\d{2})\\d{3}","\\d{6}",,,"401234"]
,[,,"(?:[27]\\d{2}|3[0-59]\\d|411)\\d{3}","\\d{6}",,,"212345"]
,[,,"(?:[27]\\d{2}|3[0-79]\\d|411)\\d{3}","\\d{6}",,,"212345"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3995,10 +4004,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"]
,"8 ($1)","",1]
]
,[[,"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[34689]"]
]
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"]
]
,[[,"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[34689]","[34689]"]
,"8 ($1)","",1]
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7","7"]
,"8 ($1)","",1]
]
,[,,"NA","NA"]
,1,,[,,"NA","NA"]
@ -4278,8 +4287,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(\\d{6})","0549 $1",["[89]"]
,"","",0]
]
,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]
]
,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]","[5-7]"]
,"","",0]
,[,"(0549)(\\d{6})","($1) $2",["0"]
]
,[,"(\\d{6})","(0549) $1",["[89]"]


+ 37
- 15
javascript/i18n/phonenumbers/metadatafortesting.js View File

@ -46,6 +46,7 @@ i18n.phonenumbers.metadata.countryCodeToRegionCodeMap = {
,82:["KR"]
,244:["AO"]
,262:["RE","YT"]
,375:["BY"]
,376:["AD"]
,800:["001"]
,979:["001"]
@ -105,16 +106,16 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"]
,"0$1","",0]
]
,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["11"]
]
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["1[02-9]|[23]"]
]
,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["11","11"]
,"0$1","",0]
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["1[02-9]|[23]","1[02-9]|[23]"]
,"0$1","",0]
,[,"(9)(11)(\\d{4})(\\d{4})","$1 $2 $3 $4",["911"]
]
,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3 $4",["9(?:1[02-9]|[23])"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]","[68]"]
,"0$1","",0]
]
,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -169,6 +170,27 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"BY":[,[,,"[1-9]\\d{5}","\\d{6}"]
,[,,"[1-9]\\d{5}","\\d{6}",,,"112345"]
,[,,"[1-9]\\d{5}","\\d{6}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"BY",375,"810","8",,,"80?|99999",,,1,[[,"(\\d{4})","$1",["[1-8]"]
,"8 $1","",0]
,[,"(\\d{2})(\\d{3})","$1 $2",["[1-8]"]
,"8$1","",0]
,[,"(\\d{3})(\\d{3})","$1 $2",["[1-8]"]
,"8 $1","",0]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
,[,,"NA","NA"]
,,[,,"NA","NA"]
,[,,"NA","NA"]
]
,"DE":[,[,,"\\d{4,14}","\\d{2,14}"]
,[,,"(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}","\\d{2,14}",,,"30123456"]
,[,,"1(5\\d{9}|7\\d{8}|6[02]\\d{8}|63\\d{7})","\\d{10,11}"]
@ -329,12 +351,12 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","045 $2 $3 $4",["1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])"]
,"$1","",0]
]
,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]00"]
]
,[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]"]
]
,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]00","[89]00"]
,"01 $1","",1]
,[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81","33|55|81"]
,"01 $1","",1]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]","[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]"]
,"01 $1","",1]
,[,"(1)(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3 $4",["1(?:33|55|81)"]
]
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])"]
@ -428,10 +450,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"US",1,"011","1"," extn. ",,"1",,,1,[[,"(\\d{3})(\\d{4})","$1 $2",,"","",0]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",,"","",0]
,"US",1,"011","1"," extn. ",,"1",,,1,[[,"(\\d{3})(\\d{4})","$1 $2",,"","",1]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",,"","",1]
]
,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3"]
,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",,"","",1]
]
,[,,"NA","NA"]
,1,,[,,"800\\d{7}","\\d{10}",,,"1234567890"]


+ 88
- 79
javascript/i18n/phonenumbers/metadatalite.js View File

@ -456,24 +456,24 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"]
,"0$1","",0]
]
,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"]
]
,[[,"([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[68]","[68]"]
,"0$1","",0]
,[,"(9)(11)(\\d{4})(\\d{4})","$1 $2 $3-$4",["911"]
]
,[,"(9)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9(?:2[234689]|3[3-8])","9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))","9(?:2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[014-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49])))"]
]
,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"]
]
,[,"(9)(\\d{4})(\\d{3})(\\d{3})","$2 15-$3-$4",["93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))","93[58]","9(?:3(?:53|8[78]))","9(?:3(?:537|8(?:73|88)))"]
,"0$1","",0]
,[,"(9)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9[23]"]
]
,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])","2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]
]
,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))"]
]
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]"]
]
,[,"(11)(\\d{4})(\\d{4})","$1 $2-$3",["1","1"]
,"0$1","",0]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])","2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))","2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])","2(?:2[013]|3[067]|49|6[01346]|80|9(?:[17-9]|4[13479]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]
,"0$1","",0]
,[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2-$3",["3(?:53|8[78])","3(?:537|8(?:73|88))","3(?:53|8[78])","3(?:537|8(?:73|88))"]
,"0$1","",0]
,[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["[23]","[23]"]
,"0$1","",0]
]
,[,,"NA","NA"]
,,,[,,"810\\d{7}","\\d{10}"]
@ -687,7 +687,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"BF":[,[,,"[24-7]\\d{7}","\\d{8}"]
,[,,"(?:20(?:49|5[23]|9[016-9])|40(?:4[56]|5[4-6]|7[0179])|50[34]\\d)\\d{4}","\\d{8}"]
,[,,"(?:6(?:0\\d|1[01]|6[0-4]|8[0-2])|7(?:[02-68]\\d|1[0-4689]|7[0-69]|9[0-689]))\\d{5}","\\d{8}"]
,[,,"(?:6(?:[05]\\d|1[01]|6[0-7]|8[0-2])|7(?:[02-68]\\d|1[0-4689]|7[0-69]|9[0-689]))\\d{5}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -709,17 +709,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,,"NA","NA"]
,[,,"700\\d{5}","\\d{5,9}"]
,[,,"NA","NA"]
,"BG",359,"00","0",,,"0",,,,[[,"(2)(\\d{5})","$1/$2",["29"]
,"BG",359,"00","0",,,"0",,,,[[,"(2)(\\d{5})","$1 $2",["29"]
,"0$1","",0]
,[,"(2)(\\d{3})(\\d{3,4})","$1/$2 $3",["2"]
,[,"(2)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"]
,"0$1","",0]
,[,"(\\d{3})(\\d{4})","$1/$2",["43[124-7]|70[1-9]"]
,[,"(\\d{3})(\\d{4})","$1 $2",["43[124-7]|70[1-9]"]
,"0$1","",0]
,[,"(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3",["43[124-7]|70[1-9]"]
,[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[124-7]|70[1-9]"]
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[78]00"]
,"0$1","",0]
,[,"(\\d{2})(\\d{3})(\\d{2,3})","$1/$2 $3",["[356]|7[1-9]|8[1-6]|9[1-7]"]
,[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|7[1-9]|8[1-6]|9[1-7]"]
,"0$1","",0]
,[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["48|8[7-9]|9[08]"]
,"0$1","",0]
@ -1184,22 +1184,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800"]
,"","",0]
]
,[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]"]
]
,[,"([48]00)(\\d{3})(\\d{4})","$1 $2 $3",["[48]00"]
]
,[,"(21)(\\d{4})(\\d{4,6})","$1 $2 $3",["21"]
]
,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]
]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]
]
,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]"]
]
,[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800"]
]
,[[,"(80\\d{2})(\\d{4})","$1 $2",["80[2678]","80[2678]"]
,"0$1","$CC $1",1]
,[,"([48]00)(\\d{3})(\\d{4})","$1 $2 $3",["[48]00","[48]00"]
,"","",0]
,[,"(21)(\\d{4})(\\d{4,6})","$1 $2 $3",["21","21"]
,"0$1","$CC $1",1]
,[,"([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]","10[1-9]|2[02-9]","10[1-9]|2[02-9]","10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]
,"0$1","$CC $1",1]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898","3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|898"]
,"0$1","$CC $1",1]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])","3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]
,"0$1","$CC $1",1]
,[,"(1[3-58]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["1[3-58]","1[3-58]"]
,"","$CC $1",0]
,[,"(10800)(\\d{3})(\\d{4})","$1 $2 $3",["108","1080","10800","108","1080","10800"]
,"","",0]
]
,[,,"NA","NA"]
,,,[,,"(?:4|(?:10)?8)00\\d{7}","\\d{10,12}"]
@ -1222,10 +1222,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(1)(\\d{3})(\\d{7})","$1-$2-$3",["1(?:80|9[04])","1(?:800|9(?:0[01]|4[78]))"]
,"0$1","",0]
]
,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]
]
,[,"(\\d{3})(\\d{7})","$1 $2",["3"]
]
,[[,"(\\d)(\\d{7})","$1 $2",["1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]","1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]
,"($1)","0$CC $1",0]
,[,"(\\d{3})(\\d{7})","$1 $2",["3","3"]
,"","0$CC $1",0]
,[,"(1)(\\d{3})(\\d{7})","$1 $2 $3",["1(?:80|9[04])","1(?:800|9(?:0[01]|4[78]))"]
]
]
@ -1464,7 +1464,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[569]|7[7-9])\\d{7}","\\d{9}"]
,[,,"(?:5[56]|7[7-9])\\d{7}|6(?:[569]\\d|70)\\d{6}","\\d{9}"]
,[,,"800\\d{6}","\\d{9}"]
,[,,"80[3-689]1\\d{5}","\\d{9}"]
,[,,"80[12]1\\d{5}","\\d{9}"]
@ -1500,10 +1500,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[247]|[356][2-8]"]
]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[356]9|[89]"]
]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]
]
,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[356]9|[89]","[356]9|[89]"]
,"0$1","",0]
,[,"(1800)(\\d{3})(\\d{3,4})","$1 $2 $3",["1","1"]
,"$1","",0]
]
,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -1708,15 +1708,18 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,[,,"1(?:[578]|12)","\\d{2,3}"]
,[,,"NA","NA"]
]
,"GA":[,[,,"[1-7]\\d{6}","\\d{7}"]
,[,,"1\\d{6}","\\d{7}"]
,[,,"[2-7]\\d{6}","\\d{7}"]
,"GA":[,[,,"[01]\\d{6,7}","\\d{7,8}"]
,[,,"1\\d{6}","\\d{7,8}"]
,[,,"0[2-7]\\d{6}","\\d{7,8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,"GA",241,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"0$1","",0]
,"GA",241,"00","0",,,"0",,,,[[,"(1)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1"]
,"0$1","",0]
,[,"(0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]
,"","",0]
]
,,[,,"NA","NA"]
,,,[,,"NA","NA"]
@ -2355,15 +2358,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,[,,"112","\\d{3}"]
,[,,"388\\d{6}|(?:6(?:2[0-8]|49|8\\d)|8(?:2[6-9]|[38]\\d|50|7[014-9])|95[48])\\d{4}","\\d{7,9}"]
]
,"IT":[,[,,"[0189]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})","\\d{6,11}"]
,[,,"0(?:[26]\\d{4,9}|[13-57-9](?:[0159]\\d{4,8}|[2-46-8]\\d{5,8}))","\\d{6,11}"]
,"IT":[,[,,"[01589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})","\\d{6,11}"]
,[,,"0(?:[26]\\d{4,9}|(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2346]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[34578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7})","\\d{6,11}"]
,[,,"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})","\\d{9,11}"]
,[,,"80(?:0\\d{6}|3\\d{3})","\\d{6,9}"]
,[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|9\\d{6})","\\d{6,9}"]
,[,,"84[78]\\d{6,7}","\\d{9,10}"]
,[,,"178\\d{6,7}","\\d{9,10}"]
,[,,"NA","NA"]
,"IT",39,"00",,,,,,,,[[,"(0[26])(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]"]
,[,,"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|4(?:[0-4]\\d{2}|[5-9]\\d{4})|5(?:[0-4]\\d{2}|[5-9]\\d{6})|9\\d{6})","\\d{6,10}"]
,[,,"84(?:[08]\\d{6}|[17]\\d{3})","\\d{6,9}"]
,[,,"1(?:78\\d|99)\\d{6}","\\d{9,10}"]
,[,,"55\\d{8}","\\d{10}"]
,"IT",39,"00",,,,,,,,[[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|55"]
,"","",0]
,[,"(0[26])(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]
,"","",0]
@ -2371,21 +2374,21 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"","",0]
,[,"(0\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]"]
,"","",0]
,[,"(0\\d{2})(\\d{4,6})","$1 $2",["0[13-57-9][0159]"]
,[,"(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[245])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]
,"","",0]
,[,"(0\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["0[13-57-9][2-46-8]"]
,"","",0]
,[,"(0\\d{3})(\\d{4,6})","$1 $2",["0[13-57-9][2-46-8]"]
,[,"(0\\d{3})(\\d{2,6})","$1 $2",["0[13-57-9][2-46-8]"]
,"","",0]
,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13]|8(?:00|4[78]|99)"]
,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13]|8(?:00|4[08]|9[59])","[13]|8(?:00|4[08]|9(?:5[5-9]|9))"]
,"","",0]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3"]
,[,"(\\d{4})(\\d{4})","$1 $2",["894","894[5-9]"]
,"","",0]
,[,"(\\d{3})(\\d{3,6})","$1 $2",["8(?:03|92)"]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["3"]
,"","",0]
]
,,[,,"NA","NA"]
,,,[,,"848\\d{6,7}","\\d{9,10}"]
,,,[,,"848\\d{6}","\\d{9}"]
,[,,"NA","NA"]
,1,[,,"11[2358]","\\d{3}"]
,[,,"NA","NA"]
@ -2439,14 +2442,14 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,,[,,"1(?:12|91)|911","\\d{3}"]
,[,,"NA","NA"]
]
,"JP":[,[,,"[1-9]\\d{8,9}|0(?:3\\d{9}|7\\d{5,7}|8\\d{7})","\\d{7,11}"]
,"JP":[,[,,"[1-9]\\d{8,9}|0(?:[36]\\d{7,14}|7\\d{5,7}|8\\d{7})","\\d{7,16}"]
,[,,"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\\d|[36][1-9]\\d|4(?:6[02-8]|[2-578]\\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\\d)|7(?:3[4-9]|4[02-9]|[25-9]\\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\\d)|9(?:[679][1-9]|[2-58]\\d))\\d{6}","\\d{9}"]
,[,,"(?:[79]0\\d|80[1-9])\\d{7}","\\d{10}"]
,[,,"120\\d{6}|800\\d{7}|0(?:777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,10}"]
,[,,"120\\d{6}|800\\d{7}|0(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,16}"]
,[,,"990\\d{6}","\\d{9}"]
,[,,"NA","NA"]
,[,,"60\\d{7}","\\d{9}"]
,[,,"(?:037|50)\\d{8}","\\d{10,11}"]
,[,,"50\\d{8}","\\d{10}"]
,"JP",81,"010","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"]
,"0$1","",0]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"]
@ -2457,15 +2460,21 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["088"]
,"0$1","",0]
,[,"(\\d{3})(\\d{4})(\\d{4})","$1-$2-$3",["037"]
,[,"(\\d{3})(\\d{3})(\\d{3,4})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{3})(\\d{5})(\\d{5,6})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{3})(\\d{6})(\\d{6,7})","$1-$2-$3",["0(?:37|66)"]
,"0$1","",0]
,[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]0|80[1-9]"]
,"0$1","",0]
,[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))","1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"]
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-9]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-9]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))","1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]
,"0$1","",0]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1|2(?:23|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)","1|2(?:23|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])","1|2(?:23|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]
,[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)","1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])","1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]
,"0$1","",0]
,[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["2(?:9[14-79]|74|[34]7|[56]9)|82|993"]
,"0$1","",0]
@ -2475,7 +2484,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,"0$1","",0]
]
,,[,,"20\\d{8}","\\d{10}"]
,,,[,,"0(?:37\\d{8}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,11}"]
,,,[,,"0(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})","\\d{7,16}"]
,[,,"570\\d{6}","\\d{9}"]
,1,[,,"11[09]","\\d{3}"]
,[,,"NA","NA"]
@ -2643,7 +2652,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"KW":[,[,,"[12569]\\d{6,7}","\\d{7,8}"]
,[,,"(?:18\\d|2(?:[23]\\d{2}|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7])))\\d{4}","\\d{7,8}"]
,[,,"(?:5(?:0[0-2568]|11|5\\d)|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[069])|9(?:0[09]|4[049]|6[69]|[79]\\d))\\d{5}","\\d{8}"]
,[,,"(?:5(?:0[0-25-9]|11|5\\d)|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[069])|9(?:0[09]|4[049]|6[69]|[79]\\d))\\d{5}","\\d{8}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3299,10 +3308,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(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","",0]
]
,[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81"]
]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]
]
,[[,"([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3",["33|55|81","33|55|81"]
,"01 $1","",1]
,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]","[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]
,"01 $1","",1]
,[,"(1)([358]\\d)(\\d{4})(\\d{4})","$1 $2 $3 $4",["1(?:33|55|81)"]
]
,[,"(1)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]
@ -3669,7 +3678,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
]
,"PF":[,[,,"[2-9]\\d{5}","\\d{6}"]
,[,,"(?:4(?:[02-9]\\d|1[02-9])|[5689]\\d{2})\\d{3}","\\d{6}"]
,[,,"(?:[27]\\d{2}|3[0-59]\\d|411)\\d{3}","\\d{6}"]
,[,,"(?:[27]\\d{2}|3[0-79]\\d|411)\\d{3}","\\d{6}"]
,[,,"NA","NA"]
,[,,"NA","NA"]
,[,,"NA","NA"]
@ -3995,10 +4004,10 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"]
,"8 ($1)","",1]
]
,[[,"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[34689]"]
]
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"]
]
,[[,"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[34689]","[34689]"]
,"8 ($1)","",1]
,[,"(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7","7"]
,"8 ($1)","",1]
]
,[,,"NA","NA"]
,1,,[,,"NA","NA"]
@ -4278,8 +4287,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
,[,"(\\d{6})","0549 $1",["[89]"]
,"","",0]
]
,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]
]
,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]","[5-7]"]
,"","",0]
,[,"(0549)(\\d{6})","($1) $2",["0"]
]
,[,"(\\d{6})","(0549) $1",["[89]"]


+ 1
- 1
javascript/i18n/phonenumbers/phonemetadata.pb.js View File

@ -23,9 +23,9 @@
*/
goog.provide('i18n.phonenumbers.NumberFormat');
goog.provide('i18n.phonenumbers.PhoneNumberDesc');
goog.provide('i18n.phonenumbers.PhoneMetadata');
goog.provide('i18n.phonenumbers.PhoneMetadataCollection');
goog.provide('i18n.phonenumbers.PhoneNumberDesc');
goog.require('goog.proto2.Message');


+ 26
- 0
javascript/i18n/phonenumbers/phonenumberutil.js View File

@ -830,6 +830,18 @@ i18n.phonenumbers.PhoneNumberUtil.FG_PATTERN_ = /\$FG/;
i18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_ = /\$CC/;
/**
* A pattern that is used to determine if the national prefix formatting rule
* has the first group only, i.e., does not start with the national prefix.
* Note that the pattern explicitly allows for unbalanced parentheses.
* @const
* @type {!RegExp}
* @private
*/
i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_ =
/^\(?\$1\)?$/;
/**
* @const
* @type {string}
@ -1272,6 +1284,20 @@ i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_ =
};
/**
* Helper function to check if the national prefix formatting rule has the first
* group only, i.e., does not start with the national prefix.
*
* @param {string} nationalPrefixFormattingRule
* @return {boolean}
*/
i18n.phonenumbers.PhoneNumberUtil.prototype.formattingRuleHasFirstGroupOnly =
function(nationalPrefixFormattingRule) {
return i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_.
test(nationalPrefixFormattingRule);
};
/**
* Helper function to check region code is not unknown or null.
*


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

@ -38,6 +38,7 @@ i18n.phonenumbers.RegionCode = {
AU: 'AU',
BR: 'BR',
BS: 'BS',
BY: 'BY',
CA: 'CA',
CN: 'CN',
CS: 'CS',


Loading…
Cancel
Save