зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1310863 - Remove DOM/phonenumberutils and related code. r=ehsan+251051
MozReview-Commit-ID: 2wednKKUPQf --HG-- extra : rebase_source : a74a15eaec415e9b09dfaacc6b953fe8c9ac6715
This commit is contained in:
Родитель
b660865a7b
Коммит
3dc1f4a34d
|
@ -508,8 +508,6 @@
|
|||
|
||||
@RESPATH@/components/PermissionSettings.js
|
||||
@RESPATH@/components/PermissionSettings.manifest
|
||||
@RESPATH@/components/PhoneNumberService.js
|
||||
@RESPATH@/components/PhoneNumberService.manifest
|
||||
@RESPATH@/components/NotificationStorage.js
|
||||
@RESPATH@/components/NotificationStorage.manifest
|
||||
@RESPATH@/components/Push.js
|
||||
|
|
|
@ -172,11 +172,6 @@ this.PermissionsTable = { geolocation: {
|
|||
privileged: DENY_ACTION,
|
||||
certified: ALLOW_ACTION
|
||||
},
|
||||
phonenumberservice: {
|
||||
app: DENY_ACTION,
|
||||
privileged: DENY_ACTION,
|
||||
certified: ALLOW_ACTION
|
||||
},
|
||||
fmradio: {
|
||||
app: DENY_ACTION,
|
||||
privileged: ALLOW_ACTION,
|
||||
|
|
|
@ -47,7 +47,6 @@ DIRS += [
|
|||
'cache',
|
||||
'canvas',
|
||||
'crypto',
|
||||
'phonenumberutils',
|
||||
'devicestorage',
|
||||
'encoding',
|
||||
'events',
|
||||
|
|
|
@ -1,389 +0,0 @@
|
|||
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||
|
||||
// Don't modify this code. Please use:
|
||||
// https://github.com/andreasgal/PhoneNumber.js
|
||||
|
||||
"use strict";
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["PhoneNumber"];
|
||||
|
||||
const Cu = Components.utils;
|
||||
|
||||
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PHONE_NUMBER_META_DATA",
|
||||
"resource://gre/modules/PhoneNumberMetaData.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PhoneNumberNormalizer",
|
||||
"resource://gre/modules/PhoneNumberNormalizer.jsm");
|
||||
this.PhoneNumber = (function (dataBase) {
|
||||
// Use strict in our context only - users might not want it
|
||||
'use strict';
|
||||
|
||||
const MAX_PHONE_NUMBER_LENGTH = 50;
|
||||
const NON_ALPHA_CHARS = /[^a-zA-Z]/g;
|
||||
const NON_DIALABLE_CHARS = /[^,#+\*\d]/g;
|
||||
const NON_DIALABLE_CHARS_ONCE = new RegExp(NON_DIALABLE_CHARS.source);
|
||||
const BACKSLASH = /\\/g;
|
||||
const SPLIT_FIRST_GROUP = /^(\d+)(.*)$/;
|
||||
const LEADING_PLUS_CHARS_PATTERN = /^[+\uFF0B]+/g;
|
||||
|
||||
// Format of the string encoded meta data. If the name contains "^" or "$"
|
||||
// we will generate a regular expression from the value, with those special
|
||||
// characters as prefix/suffix.
|
||||
const META_DATA_ENCODING = ["region",
|
||||
"^(?:internationalPrefix)",
|
||||
"nationalPrefix",
|
||||
"^(?:nationalPrefixForParsing)",
|
||||
"nationalPrefixTransformRule",
|
||||
"nationalPrefixFormattingRule",
|
||||
"^possiblePattern$",
|
||||
"^nationalPattern$",
|
||||
"formats"];
|
||||
|
||||
const FORMAT_ENCODING = ["^pattern$",
|
||||
"nationalFormat",
|
||||
"^leadingDigits",
|
||||
"nationalPrefixFormattingRule",
|
||||
"internationalFormat"];
|
||||
|
||||
var regionCache = Object.create(null);
|
||||
|
||||
// Parse an array of strings into a convenient object. We store meta
|
||||
// data as arrays since thats much more compact than JSON.
|
||||
function ParseArray(array, encoding, obj) {
|
||||
for (var n = 0; n < encoding.length; ++n) {
|
||||
var value = array[n];
|
||||
if (!value)
|
||||
continue;
|
||||
var field = encoding[n];
|
||||
var fieldAlpha = field.replace(NON_ALPHA_CHARS, "");
|
||||
if (field != fieldAlpha)
|
||||
value = new RegExp(field.replace(fieldAlpha, value));
|
||||
obj[fieldAlpha] = value;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
// Parse string encoded meta data into a convenient object
|
||||
// representation.
|
||||
function ParseMetaData(countryCode, md) {
|
||||
var array = eval(md.replace(BACKSLASH, "\\\\"));
|
||||
md = ParseArray(array,
|
||||
META_DATA_ENCODING,
|
||||
{ countryCode: countryCode });
|
||||
regionCache[md.region] = md;
|
||||
return md;
|
||||
}
|
||||
|
||||
// Parse string encoded format data into a convenient object
|
||||
// representation.
|
||||
function ParseFormat(md) {
|
||||
var formats = md.formats;
|
||||
if (!formats) {
|
||||
return null;
|
||||
}
|
||||
// Bail if we already parsed the format definitions.
|
||||
if (!(Array.isArray(formats[0])))
|
||||
return;
|
||||
for (var n = 0; n < formats.length; ++n) {
|
||||
formats[n] = ParseArray(formats[n],
|
||||
FORMAT_ENCODING,
|
||||
{});
|
||||
}
|
||||
}
|
||||
|
||||
// Search for the meta data associated with a region identifier ("US") in
|
||||
// our database, which is indexed by country code ("1"). Since we have
|
||||
// to walk the entire database for this, we cache the result of the lookup
|
||||
// for future reference.
|
||||
function FindMetaDataForRegion(region) {
|
||||
// Check in the region cache first. This will find all entries we have
|
||||
// already resolved (parsed from a string encoding).
|
||||
var md = regionCache[region];
|
||||
if (md)
|
||||
return md;
|
||||
for (var countryCode in dataBase) {
|
||||
var entry = dataBase[countryCode];
|
||||
// Each entry is a string encoded object of the form '["US..', or
|
||||
// an array of strings. We don't want to parse the string here
|
||||
// to save memory, so we just substring the region identifier
|
||||
// and compare it. For arrays, we compare against all region
|
||||
// identifiers with that country code. We skip entries that are
|
||||
// of type object, because they were already resolved (parsed into
|
||||
// an object), and their country code should have been in the cache.
|
||||
if (Array.isArray(entry)) {
|
||||
for (var n = 0; n < entry.length; n++) {
|
||||
if (typeof entry[n] == "string" && entry[n].substr(2,2) == region) {
|
||||
if (n > 0) {
|
||||
// Only the first entry has the formats field set.
|
||||
// Parse the main country if we haven't already and use
|
||||
// the formats field from the main country.
|
||||
if (typeof entry[0] == "string")
|
||||
entry[0] = ParseMetaData(countryCode, entry[0]);
|
||||
let formats = entry[0].formats;
|
||||
let current = ParseMetaData(countryCode, entry[n]);
|
||||
current.formats = formats;
|
||||
return entry[n] = current;
|
||||
}
|
||||
|
||||
entry[n] = ParseMetaData(countryCode, entry[n]);
|
||||
return entry[n];
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (typeof entry == "string" && entry.substr(2,2) == region)
|
||||
return dataBase[countryCode] = ParseMetaData(countryCode, entry);
|
||||
}
|
||||
}
|
||||
|
||||
// Format a national number for a given region. The boolean flag "intl"
|
||||
// indicates whether we want the national or international format.
|
||||
function FormatNumber(regionMetaData, number, intl) {
|
||||
// We lazily parse the format description in the meta data for the region,
|
||||
// so make sure to parse it now if we haven't already done so.
|
||||
ParseFormat(regionMetaData);
|
||||
var formats = regionMetaData.formats;
|
||||
if (!formats) {
|
||||
return null;
|
||||
}
|
||||
for (var n = 0; n < formats.length; ++n) {
|
||||
var format = formats[n];
|
||||
// The leading digits field is optional. If we don't have it, just
|
||||
// use the matching pattern to qualify numbers.
|
||||
if (format.leadingDigits && !format.leadingDigits.test(number))
|
||||
continue;
|
||||
if (!format.pattern.test(number))
|
||||
continue;
|
||||
if (intl) {
|
||||
// If there is no international format, just fall back to the national
|
||||
// format.
|
||||
var internationalFormat = format.internationalFormat;
|
||||
if (!internationalFormat)
|
||||
internationalFormat = format.nationalFormat;
|
||||
// Some regions have numbers that can't be dialed from outside the
|
||||
// country, indicated by "NA" for the international format of that
|
||||
// number format pattern.
|
||||
if (internationalFormat == "NA")
|
||||
return null;
|
||||
// Prepend "+" and the country code.
|
||||
number = "+" + regionMetaData.countryCode + " " +
|
||||
number.replace(format.pattern, internationalFormat);
|
||||
} else {
|
||||
number = number.replace(format.pattern, format.nationalFormat);
|
||||
// The region has a national prefix formatting rule, and it can be overwritten
|
||||
// by each actual number format rule.
|
||||
var nationalPrefixFormattingRule = regionMetaData.nationalPrefixFormattingRule;
|
||||
if (format.nationalPrefixFormattingRule)
|
||||
nationalPrefixFormattingRule = format.nationalPrefixFormattingRule;
|
||||
if (nationalPrefixFormattingRule) {
|
||||
// The prefix formatting rule contains two magic markers, "$NP" and "$FG".
|
||||
// "$NP" will be replaced by the national prefix, and "$FG" with the
|
||||
// first group of numbers.
|
||||
var match = number.match(SPLIT_FIRST_GROUP);
|
||||
if (match) {
|
||||
var firstGroup = match[1];
|
||||
var rest = match[2];
|
||||
var prefix = nationalPrefixFormattingRule;
|
||||
prefix = prefix.replace("$NP", regionMetaData.nationalPrefix);
|
||||
prefix = prefix.replace("$FG", firstGroup);
|
||||
number = prefix + rest;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (number == "NA") ? null : number;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function NationalNumber(regionMetaData, number) {
|
||||
this.region = regionMetaData.region;
|
||||
this.regionMetaData = regionMetaData;
|
||||
this.nationalNumber = number;
|
||||
}
|
||||
|
||||
// NationalNumber represents the result of parsing a phone number. We have
|
||||
// three getters on the prototype that format the number in national and
|
||||
// international format. Once called, the getters put a direct property
|
||||
// onto the object, caching the result.
|
||||
NationalNumber.prototype = {
|
||||
// +1 949-726-2896
|
||||
get internationalFormat() {
|
||||
var value = FormatNumber(this.regionMetaData, this.nationalNumber, true);
|
||||
Object.defineProperty(this, "internationalFormat", { value: value, enumerable: true });
|
||||
return value;
|
||||
},
|
||||
// (949) 726-2896
|
||||
get nationalFormat() {
|
||||
var value = FormatNumber(this.regionMetaData, this.nationalNumber, false);
|
||||
Object.defineProperty(this, "nationalFormat", { value: value, enumerable: true });
|
||||
return value;
|
||||
},
|
||||
// +19497262896
|
||||
get internationalNumber() {
|
||||
var value = this.internationalFormat ? this.internationalFormat.replace(NON_DIALABLE_CHARS, "")
|
||||
: null;
|
||||
Object.defineProperty(this, "internationalNumber", { value: value, enumerable: true });
|
||||
return value;
|
||||
},
|
||||
// country name 'US'
|
||||
get countryName() {
|
||||
var value = this.region ? this.region : null;
|
||||
Object.defineProperty(this, "countryName", { value: value, enumerable: true });
|
||||
return value;
|
||||
}
|
||||
};
|
||||
|
||||
// Check whether the number is valid for the given region.
|
||||
function IsValidNumber(number, md) {
|
||||
return md.possiblePattern.test(number);
|
||||
}
|
||||
|
||||
// Check whether the number is a valid national number for the given region.
|
||||
function IsNationalNumber(number, md) {
|
||||
return IsValidNumber(number, md) && md.nationalPattern.test(number);
|
||||
}
|
||||
|
||||
// Determine the country code a number starts with, or return null if
|
||||
// its not a valid country code.
|
||||
function ParseCountryCode(number) {
|
||||
for (var n = 1; n <= 3; ++n) {
|
||||
var cc = number.substr(0,n);
|
||||
if (dataBase[cc])
|
||||
return cc;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Parse an international number that starts with the country code. Return
|
||||
// null if the number is not a valid international number.
|
||||
function ParseInternationalNumber(number) {
|
||||
var ret;
|
||||
|
||||
// Parse and strip the country code.
|
||||
var countryCode = ParseCountryCode(number);
|
||||
if (!countryCode)
|
||||
return null;
|
||||
number = number.substr(countryCode.length);
|
||||
|
||||
// Lookup the meta data for the region (or regions) and if the rest of
|
||||
// the number parses for that region, return the parsed number.
|
||||
var entry = dataBase[countryCode];
|
||||
if (Array.isArray(entry)) {
|
||||
for (var n = 0; n < entry.length; ++n) {
|
||||
if (typeof entry[n] == "string")
|
||||
entry[n] = ParseMetaData(countryCode, entry[n]);
|
||||
if (n > 0)
|
||||
entry[n].formats = entry[0].formats;
|
||||
ret = ParseNationalNumber(number, entry[n])
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if (typeof entry == "string")
|
||||
entry = dataBase[countryCode] = ParseMetaData(countryCode, entry);
|
||||
return ParseNationalNumber(number, entry);
|
||||
}
|
||||
|
||||
// Parse a national number for a specific region. Return null if the
|
||||
// number is not a valid national number (it might still be a possible
|
||||
// number for parts of that region).
|
||||
function ParseNationalNumber(number, md) {
|
||||
if (!md.possiblePattern.test(number) ||
|
||||
!md.nationalPattern.test(number)) {
|
||||
return null;
|
||||
}
|
||||
// Success.
|
||||
return new NationalNumber(md, number);
|
||||
}
|
||||
|
||||
// Parse a number and transform it into the national format, removing any
|
||||
// international dial prefixes and country codes.
|
||||
function ParseNumber(number, defaultRegion) {
|
||||
var ret;
|
||||
|
||||
// Remove formating characters and whitespace.
|
||||
number = PhoneNumberNormalizer.Normalize(number);
|
||||
|
||||
// If there is no defaultRegion or the defaultRegion is the global region,
|
||||
// we can't parse international access codes.
|
||||
if ((!defaultRegion || defaultRegion === '001') && number[0] !== '+')
|
||||
return null;
|
||||
|
||||
// Detect and strip leading '+'.
|
||||
if (number[0] === '+')
|
||||
return ParseInternationalNumber(number.replace(LEADING_PLUS_CHARS_PATTERN, ""));
|
||||
|
||||
// Lookup the meta data for the given region.
|
||||
var md = FindMetaDataForRegion(defaultRegion.toUpperCase());
|
||||
|
||||
if (!md) {
|
||||
dump("Couldn't find Meta Data for region: " + defaultRegion + "\n");
|
||||
return null;
|
||||
}
|
||||
|
||||
// See if the number starts with an international prefix, and if the
|
||||
// number resulting from stripping the code is valid, then remove the
|
||||
// prefix and flag the number as international.
|
||||
if (md.internationalPrefix.test(number)) {
|
||||
var possibleNumber = number.replace(md.internationalPrefix, "");
|
||||
ret = ParseInternationalNumber(possibleNumber)
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
// This is not an international number. See if its a national one for
|
||||
// the current region. National numbers can start with the national
|
||||
// prefix, or without.
|
||||
if (md.nationalPrefixForParsing) {
|
||||
// Some regions have specific national prefix parse rules. Apply those.
|
||||
var withoutPrefix = number.replace(md.nationalPrefixForParsing,
|
||||
md.nationalPrefixTransformRule || '');
|
||||
ret = ParseNationalNumber(withoutPrefix, md)
|
||||
if (ret)
|
||||
return ret;
|
||||
} else {
|
||||
// If there is no specific national prefix rule, just strip off the
|
||||
// national prefix from the beginning of the number (if there is one).
|
||||
var nationalPrefix = md.nationalPrefix;
|
||||
if (nationalPrefix && number.indexOf(nationalPrefix) == 0 &&
|
||||
(ret = ParseNationalNumber(number.substr(nationalPrefix.length), md))) {
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
ret = ParseNationalNumber(number, md)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
// Now lets see if maybe its an international number after all, but
|
||||
// without '+' or the international prefix.
|
||||
ret = ParseInternationalNumber(number)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
// If the number matches the possible numbers of the current region,
|
||||
// return it as a possible number.
|
||||
if (md.possiblePattern.test(number))
|
||||
return new NationalNumber(md, number);
|
||||
|
||||
// We couldn't parse the number at all.
|
||||
return null;
|
||||
}
|
||||
|
||||
function IsPlainPhoneNumber(number) {
|
||||
if (typeof number !== 'string') {
|
||||
return false;
|
||||
}
|
||||
|
||||
var length = number.length;
|
||||
var isTooLong = (length > MAX_PHONE_NUMBER_LENGTH);
|
||||
var isEmpty = (length === 0);
|
||||
return !(isTooLong || isEmpty || NON_DIALABLE_CHARS_ONCE.test(number));
|
||||
}
|
||||
|
||||
return {
|
||||
IsPlain: IsPlainPhoneNumber,
|
||||
Parse: ParseNumber,
|
||||
};
|
||||
})(PHONE_NUMBER_META_DATA);
|
|
@ -1,222 +0,0 @@
|
|||
/* Automatically generated. Do not edit. */
|
||||
// Please use https://github.com/andreasgal/PhoneNumber.js
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["PHONE_NUMBER_META_DATA"];
|
||||
|
||||
this.PHONE_NUMBER_META_DATA = {
|
||||
"46": '["SE","00","0",,,"$NP$FG","\\d{5,10}","[1-9]\\d{5,9}",[["(8)(\\d{2,3})(\\d{2,3})(\\d{2})","$1-$2 $3 $4","8",,"$1 $2 $3 $4"],["([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4","1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90",,"$1 $2 $3 $4"],["([1-69]\\d)(\\d{3})(\\d{2})","$1-$2 $3","1[13689]|2[136]|3[1356]|4[0246]|54|6[03]|90",,"$1 $2 $3"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4","1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])",,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3","1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])",,"$1 $2 $3"],["(7\\d)(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4","7",,"$1 $2 $3 $4"],["(77)(\\d{2})(\\d{2})","$1-$2$3","7",,"$1 $2 $3"],["(20)(\\d{2,3})(\\d{2})","$1-$2 $3","20",,"$1 $2 $3"],["(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4","9[034]",,"$1 $2 $3 $4"],["(9[034]\\d)(\\d{4})","$1-$2","9[034]",,"$1 $2"]]]',
|
||||
"299": '["GL","00",,,,,"\\d{6}","[1-689]\\d{5}",[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
|
||||
"385": '["HR","00","0",,,"$NP$FG","\\d{6,12}","[1-7]\\d{5,8}|[89]\\d{6,11}",[["(1)(\\d{4})(\\d{3})","$1 $2 $3","1",,],["(6[09])(\\d{4})(\\d{3})","$1 $2 $3","6[09]",,],["(62)(\\d{3})(\\d{3,4})","$1 $2 $3","62",,],["([2-5]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[2-5]",,],["(9\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","9",,],["(9\\d)(\\d{4})(\\d{4})","$1 $2 $3","9",,],["(9\\d)(\\d{3,4})(\\d{3})(\\d{3})","$1 $2 $3 $4","9",,],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3","6[145]|7",,],["(\\d{2})(\\d{3,4})(\\d{3})","$1 $2 $3","6[145]|7",,],["(80[01])(\\d{2})(\\d{2,3})","$1 $2 $3","8",,],["(80[01])(\\d{3,4})(\\d{3})","$1 $2 $3","8",,]]]',
|
||||
"670": '["TL","00",,,,,"\\d{7,8}","[2-489]\\d{6}|7\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[2-489]",,],["(\\d{4})(\\d{4})","$1 $2","7",,]]]',
|
||||
"258": '["MZ","00",,,,,"\\d{8,9}","[28]\\d{7,8}",[["([28]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","2|8[2-7]",,],["(80\\d)(\\d{3})(\\d{3})","$1 $2 $3","80",,]]]',
|
||||
"359": '["BG","00","0",,,"$NP$FG","\\d{5,9}","[23567]\\d{5,7}|[489]\\d{6,8}",[["(2)(\\d{5})","$1 $2","29",,],["(2)(\\d{3})(\\d{3,4})","$1 $2 $3","2",,],["(\\d{3})(\\d{4})","$1 $2","43[124-7]|70[1-9]",,],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3","43[124-7]|70[1-9]",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","[78]00",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","999",,],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3","[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","48|8[7-9]|9[08]",,]]]',
|
||||
"682": '["CK","00",,,,,"\\d{5}","[2-57]\\d{4}",[["(\\d{2})(\\d{3})","$1 $2",,,]]]',
|
||||
"852": '["HK","00",,,,,"\\d{5,11}","[235-7]\\d{7}|8\\d{7,8}|9\\d{4,10}",[["(\\d{4})(\\d{4})","$1 $2","[235-7]|[89](?:0[1-9]|[1-9])",,],["(800)(\\d{3})(\\d{3})","$1 $2 $3","800",,],["(900)(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4","900",,],["(900)(\\d{2,5})","$1 $2","900",,]]]',
|
||||
"998": '["UZ","810","8",,,"$NP $FG","\\d{7,9}","[679]\\d{8}",[["([679]\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"291": '["ER","00","0",,,"$NP$FG","\\d{6,7}","[178]\\d{6}",[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
|
||||
"95": '["MM","00","0",,,"$NP$FG","\\d{5,10}","[14578]\\d{5,7}|[26]\\d{5,8}|9(?:2\\d{0,2}|[58]|3\\d|4\\d{1,2}|6\\d?|[79]\\d{0,2})\\d{6}",[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","1|2[45]",,],["(2)(\\d{4})(\\d{4})","$1 $2 $3","251",,],["(\\d)(\\d{2})(\\d{3})","$1 $2 $3","16|2",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","67|81",,],["(\\d{2})(\\d{2})(\\d{3,4})","$1 $2 $3","[4-8]",,],["(9)(\\d{3})(\\d{4,6})","$1 $2 $3","9(?:2[0-4]|[35-9]|4[13789])",,],["(9)(4\\d{4})(\\d{4})","$1 $2 $3","94[0245]",,],["(9)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","925",,]]]',
|
||||
"266": '["LS","00",,,,,"\\d{8}","[2568]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
|
||||
"245": '["GW","00",,,,,"\\d{7}","[3-79]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"374": '["AM","00","0",,,"($NP$FG)","\\d{5,8}","[1-9]\\d{7}",[["(\\d{2})(\\d{6})","$1 $2","1|47",,],["(\\d{2})(\\d{6})","$1 $2","4[139]|[5-7]|9[1-9]","$NP$FG",],["(\\d{3})(\\d{5})","$1 $2","[23]",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","8|90","$NP $FG",]]]',
|
||||
"379": '["VA","00",,,,,"\\d{10}","06\\d{8}",[["(06)(\\d{4})(\\d{4})","$1 $2 $3",,,]]]',
|
||||
"61": ['["AU","(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,,"\\d{6,10}","[1-578]\\d{5,9}",[["([2378])(\\d{4})(\\d{4})","$1 $2 $3","[2378]","($NP$FG)",],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[45]|14","$NP$FG",],["(16)(\\d{3})(\\d{2,4})","$1 $2 $3","16","$NP$FG",],["(1[389]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","1(?:[38]0|90)","$FG",],["(180)(2\\d{3})","$1 $2","180","$FG",],["(19\\d)(\\d{3})","$1 $2","19[13]","$FG",],["(19\\d{2})(\\d{4})","$1 $2","19[67]","$FG",],["(13)(\\d{2})(\\d{2})","$1 $2 $3","13[1-9]","$FG",]]]','["CC","(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,,"\\d{6,10}","[1458]\\d{5,9}",]','["CX","(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]","0",,,,"\\d{6,10}","[1458]\\d{5,9}",]'],
|
||||
"500": '["FK","00",,,,,"\\d{5}","[2-7]\\d{4}",]',
|
||||
"261": '["MG","00","0",,,"$NP$FG","\\d{7,9}","[23]\\d{8}",[["([23]\\d)(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"92": '["PK","00","0",,,"($NP$FG)","\\d{6,12}","1\\d{8}|[2-8]\\d{5,11}|9(?:[013-9]\\d{4,9}|2\\d(?:111\\d{6}|\\d{3,7}))",[["(\\d{2})(111)(\\d{3})(\\d{3})","$1 $2 $3 $4","(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)1",,],["(\\d{3})(111)(\\d{3})(\\d{3})","$1 $2 $3 $4","2[349]|45|54|60|72|8[2-5]|9[2-9]",,],["(\\d{2})(\\d{7,8})","$1 $2","(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]",,],["(\\d{3})(\\d{6,7})","$1 $2","2[349]|45|54|60|72|8[2-5]|9[2-9]",,],["(3\\d{2})(\\d{7})","$1 $2","3","$NP$FG",],["([15]\\d{3})(\\d{5,6})","$1 $2","58[12]|1",,],["(586\\d{2})(\\d{5})","$1 $2","586",,],["([89]00)(\\d{3})(\\d{2})","$1 $2 $3","[89]00","$NP$FG",]]]',
|
||||
"234": '["NG","009","0",,,"$NP$FG","\\d{5,14}","[1-6]\\d{5,8}|9\\d{5,9}|[78]\\d{5,13}",[["([129])(\\d{3})(\\d{3,4})","$1 $2 $3","[129]",,],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3","[3-6]|7(?:[1-79]|0[1-9])|8[2-9]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","70|8[01]|90[2359]",,],["([78]00)(\\d{4})(\\d{4,5})","$1 $2 $3","[78]00",,],["([78]00)(\\d{5})(\\d{5,6})","$1 $2 $3","[78]00",,],["(78)(\\d{2})(\\d{3})","$1 $2 $3","78",,]]]',
|
||||
"350": '["GI","00",,,,,"\\d{8}","[2568]\\d{7}",[["(\\d{3})(\\d{5})","$1 $2","2",,]]]',
|
||||
"45": '["DK","00",,,,,"\\d{8}","[2-9]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"963": '["SY","00","0",,,"$NP$FG","\\d{6,9}","[1-59]\\d{7,8}",[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","[1-5]",,],["(9\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","9",,]]]',
|
||||
"226": '["BF","00",,,,,"\\d{8}","[267]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"974": '["QA","00",,,,,"\\d{7,8}","[2-8]\\d{6,7}",[["([28]\\d{2})(\\d{4})","$1 $2","[28]",,],["([3-7]\\d{3})(\\d{4})","$1 $2","[3-7]",,]]]',
|
||||
"218": '["LY","00","0",,,"$NP$FG","\\d{7,9}","[25679]\\d{8}",[["([25679]\\d)(\\d{7})","$1-$2",,,]]]',
|
||||
"51": '["PE","19(?:1[124]|77|90)00","0",,,"($NP$FG)","\\d{6,9}","[14-9]\\d{7,8}",[["(1)(\\d{7})","$1 $2","1",,],["([4-8]\\d)(\\d{6})","$1 $2","[4-7]|8[2-4]",,],["(\\d{3})(\\d{5})","$1 $2","80",,],["(9\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","9","$FG",]]]',
|
||||
"62": '["ID","0(?:0[1789]|10(?:00|1[67]))","0",,,"$NP$FG","\\d{5,11}","[1-9]\\d{6,10}",[["(\\d{2})(\\d{5,8})","$1 $2","2[124]|[36]1","($NP$FG)",],["(\\d{3})(\\d{5,8})","$1 $2","[4579]|2[035-9]|[36][02-9]","($NP$FG)",],["(8\\d{2})(\\d{3,4})(\\d{3,4})","$1-$2-$3","8[1-35-9]",,],["(177)(\\d{6,8})","$1 $2","1",,],["(800)(\\d{5,7})","$1 $2","800",,],["(80\\d)(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4","80[79]",,]]]',
|
||||
"298": '["FO","00",,"(10(?:01|[12]0|88))",,,"\\d{6}","[2-9]\\d{5}",[["(\\d{6})","$1",,,]]]',
|
||||
"381": '["RS","00","0",,,"$NP$FG","\\d{5,12}","[126-9]\\d{4,11}|3(?:[0-79]\\d{3,10}|8[2-9]\\d{2,9})",[["([23]\\d{2})(\\d{4,9})","$1 $2","(?:2[389]|39)0",,],["([1-3]\\d)(\\d{5,10})","$1 $2","1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])",,],["(6\\d)(\\d{6,8})","$1 $2","6",,],["([89]\\d{2})(\\d{3,9})","$1 $2","[89]",,],["(7[26])(\\d{4,9})","$1 $2","7[26]",,],["(7[08]\\d)(\\d{4,9})","$1 $2","7[08]",,]]]',
|
||||
"975": '["BT","00",,,,,"\\d{6,8}","[1-8]\\d{6,7}",[["([17]7)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","1|77",,],["([2-8])(\\d{3})(\\d{3})","$1 $2 $3","[2-68]|7[246]",,]]]',
|
||||
"34": '["ES","00",,,,,"\\d{9}","[5-9]\\d{8}",[["([5-9]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[568]|[79][0-8]",,]]]',
|
||||
"881": '["001",,,,,,"\\d{9}","[67]\\d{8}",[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3","[67]",,]]]',
|
||||
"855": '["KH","00[14-9]","0",,,,"\\d{6,10}","[1-9]\\d{7,9}",[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","1\\d[1-9]|[2-9]","$NP$FG",],["(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3","1[89]0",,]]]',
|
||||
"420": '["CZ","00",,,,,"\\d{9,12}","[2-8]\\d{8}|9\\d{8,11}",[["([2-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[2-8]|9[015-7]",,],["(96\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","96",,],["(9\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","9[36]",,]]]',
|
||||
"216": '["TN","00",,,,,"\\d{8}","[2-57-9]\\d{7}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
|
||||
"673": '["BN","00",,,,,"\\d{7}","[2-578]\\d{6}",[["([2-578]\\d{2})(\\d{4})","$1 $2",,,]]]',
|
||||
"290": ['["SH","00",,,,,"\\d{4,5}","[25]\\d{4}",]','["TA","00",,,,,"\\d{4}","8\\d{3}",]'],
|
||||
"882": '["001",,,,,,"\\d{7,12}","[13]\\d{6,11}",[["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3","3[23]",,],["(\\d{2})(\\d{5})","$1 $2","16|342",,],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","34[57]",,],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","348",,],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3","1",,],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3","16",,],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3","16",,]]]',
|
||||
"267": '["BW","00",,,,,"\\d{7,8}","[2-79]\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[2-6]",,],["(7\\d)(\\d{3})(\\d{3})","$1 $2 $3","7",,],["(90)(\\d{5})","$1 $2","9",,]]]',
|
||||
"94": '["LK","00","0",,,"$NP$FG","\\d{7,9}","[1-9]\\d{8}",[["(\\d{2})(\\d{1})(\\d{6})","$1 $2 $3","[1-689]",,],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","7",,]]]',
|
||||
"356": '["MT","00",,,,,"\\d{8}","[2357-9]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
|
||||
"375": '["BY","810","8","8?0?",,,"\\d{7,11}","[1-4]\\d{8}|[89]\\d{9,10}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4","17[0-3589]|2[4-9]|[34]","$NP 0$FG",],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4","1(?:5[24]|6[235]|7[467])|2(?:1[246]|2[25]|3[26])","$NP 0$FG",],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3","1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","$NP 0$FG",],["([89]\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","8[01]|9","$NP $FG",],["(8\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","82","$NP $FG",]]]',
|
||||
"690": '["TK","00",,,,,"\\d{4}","[2-9]\\d{3}",]',
|
||||
"507": '["PA","00",,,,,"\\d{7,8}","[1-9]\\d{6,7}",[["(\\d{3})(\\d{4})","$1-$2","[1-57-9]",,],["(\\d{4})(\\d{4})","$1-$2","6",,]]]',
|
||||
"692": '["MH","011","1",,,,"\\d{7}","[2-6]\\d{6}",[["(\\d{3})(\\d{4})","$1-$2",,,]]]',
|
||||
"250": '["RW","00","0",,,,"\\d{8,9}","[027-9]\\d{7,8}",[["(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","2","$FG",],["([7-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[7-9]","$NP$FG",],["(0\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","0",,]]]',
|
||||
"81": '["JP","010","0",,,"$NP$FG","\\d{8,17}","[1-9]\\d{8,9}|00(?:[36]\\d{7,14}|7\\d{5,7}|8\\d{7})",[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3","(?:12|57|99)0",,],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3","800",,],["(\\d{4})(\\d{4})","$1-$2","0077","$FG","NA"],["(\\d{4})(\\d{2})(\\d{3,4})","$1-$2-$3","0077","$FG","NA"],["(\\d{4})(\\d{2})(\\d{4})","$1-$2-$3","0088","$FG","NA"],["(\\d{4})(\\d{3})(\\d{3,4})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{4})(\\d{4})(\\d{4,5})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{4})(\\d{5})(\\d{5,6})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{4})(\\d{6})(\\d{6,7})","$1-$2-$3","00(?:37|66)","$FG","NA"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3","[2579]0|80[1-9]",,],["(\\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])",,],["(\\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])",,],["(\\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)",,],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3","2(?:9[14-79]|74|[34]7|[56]9)|82|993",,],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3","3|4(?:2[09]|7[01])|6[1-9]",,],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3","[2479][1-9]",,]]]',
|
||||
"237": '["CM","00",,,,,"\\d{8,9}","[2368]\\d{7,8}",[["([26])(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","[26]",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[23]|88",,],["(800)(\\d{2})(\\d{3})","$1 $2 $3","80",,]]]',
|
||||
"351": '["PT","00",,,,,"\\d{9}","[2-46-9]\\d{8}",[["(2\\d)(\\d{3})(\\d{4})","$1 $2 $3","2[12]",,],["([2-46-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","2[3-9]|[346-9]",,]]]',
|
||||
"246": '["IO","00",,,,,"\\d{7}","3\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"227": '["NE","00",,,,,"\\d{8}","[0289]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[289]|09",,],["(08)(\\d{3})(\\d{3})","$1 $2 $3","08",,]]]',
|
||||
"27": '["ZA","00","0",,,"$NP$FG","\\d{5,9}","[1-79]\\d{8}|8(?:[067]\\d{7}|[1-4]\\d{3,7})",[["(860)(\\d{3})(\\d{3})","$1 $2 $3","860",,],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[1-79]|8(?:[0-47]|6[1-9])",,],["(\\d{2})(\\d{3,4})","$1 $2","8[1-4]",,],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3","8[1-4]",,]]]',
|
||||
"962": '["JO","00","0",,,"$NP$FG","\\d{8,9}","[235-9]\\d{7,8}",[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3","[2356]|87","($NP$FG)",],["(7)(\\d{4})(\\d{4})","$1 $2 $3","7[457-9]",,],["(\\d{3})(\\d{5,6})","$1 $2","70|8[0158]|9",,]]]',
|
||||
"387": '["BA","00","0",,,"$NP$FG","\\d{6,9}","[3-9]\\d{7,8}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3","[3-5]",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","6[1-356]|[7-9]",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4","6[047]",,]]]',
|
||||
"33": '["FR","00","0",,,"$NP$FG","\\d{9}","[1-9]\\d{8}",[["([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","[1-79]",,],["(1\\d{2})(\\d{3})","$1 $2","11","$FG","NA"],["(8\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","8","$NP $FG",]]]',
|
||||
"972": '["IL","0(?:0|1[2-9])","0",,,"$FG","\\d{4,10}","[17]\\d{6,9}|[2-589]\\d{3}(?:\\d{3,6})?|6\\d{3}",[["([2-489])(\\d{3})(\\d{4})","$1-$2-$3","[2-489]","$NP$FG",],["([57]\\d)(\\d{3})(\\d{4})","$1-$2-$3","[57]","$NP$FG",],["(1)([7-9]\\d{2})(\\d{3})(\\d{3})","$1-$2-$3-$4","1[7-9]",,],["(1255)(\\d{3})","$1-$2","125",,],["(1200)(\\d{3})(\\d{3})","$1-$2-$3","120",,],["(1212)(\\d{2})(\\d{2})","$1-$2-$3","121",,],["(1599)(\\d{6})","$1-$2","15",,],["(\\d{4})","*$1","[2-689]",,]]]',
|
||||
"248": '["SC","0[0-2]",,,,,"\\d{6,7}","[2468]\\d{5,6}",[["(\\d{3})(\\d{3})","$1 $2","8",,],["(\\d)(\\d{3})(\\d{3})","$1 $2 $3","[246]",,]]]',
|
||||
"297": '["AW","00",,,,,"\\d{7}","[25-9]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"421": '["SK","00","0",,,"$NP$FG","\\d{9}","[2-689]\\d{8}",[["(2)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4","2",,],["([3-5]\\d)(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4","[3-5]",,],["([689]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[689]",,]]]',
|
||||
"672": '["NF","00",,,,,"\\d{5,6}","[13]\\d{5}",[["(\\d{2})(\\d{4})","$1 $2","1",,],["(\\d)(\\d{5})","$1 $2","3",,]]]',
|
||||
"870": '["001",,,,,,"\\d{9}","[35-7]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
|
||||
"883": '["001",,,,,,"\\d{9}(?:\\d{3})?","51\\d{7}(?:\\d{3})?",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","510",,],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","510",,],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3","51[13]",,]]]',
|
||||
"264": '["NA","00","0",,,"$NP$FG","\\d{8,9}","[68]\\d{7,8}",[["(8\\d)(\\d{3})(\\d{4})","$1 $2 $3","8[1235]",,],["(6\\d)(\\d{2,3})(\\d{4})","$1 $2 $3","6",,],["(88)(\\d{3})(\\d{3})","$1 $2 $3","88",,],["(870)(\\d{3})(\\d{3})","$1 $2 $3","870",,]]]',
|
||||
"878": '["001",,,,,,"\\d{12}","1\\d{11}",[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",,,]]]',
|
||||
"239": '["ST","00",,,,,"\\d{7}","[29]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"357": '["CY","00",,,,,"\\d{8}","[257-9]\\d{7}",[["(\\d{2})(\\d{6})","$1 $2",,,]]]',
|
||||
"240": '["GQ","00",,,,,"\\d{9}","[23589]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[235]",,],["(\\d{3})(\\d{6})","$1 $2","[89]",,]]]',
|
||||
"506": '["CR","00",,"(19(?:0[012468]|1[09]|20|66|77|99))",,,"\\d{8,10}","[24-9]\\d{7,9}",[["(\\d{4})(\\d{4})","$1 $2","[24-7]|8[3-9]",,],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3","[89]0",,]]]',
|
||||
"86": '["CN","(1(?:[129]\\d{3}|79\\d{2}))?00","0","(1(?:[129]\\d{3}|79\\d{2}))|0",,,"\\d{4,12}","[1-7]\\d{6,11}|8[0-357-9]\\d{6,9}|9\\d{7,10}",[["(80\\d{2})(\\d{4})","$1 $2","80[2678]","$NP$FG",],["([48]00)(\\d{3})(\\d{4})","$1 $2 $3","[48]00",,],["(\\d{5,6})","$1","100|95",,"NA"],["(\\d{2})(\\d{5,6})","$1 $2","(?:10|2\\d)[19]","$NP$FG",],["(\\d{3})(\\d{5,6})","$1 $2","[3-9]","$NP$FG",],["(\\d{3,4})(\\d{4})","$1 $2","[2-9]",,"NA"],["(21)(\\d{4})(\\d{4,6})","$1 $2 $3","21","$NP$FG",],["([12]\\d)(\\d{4})(\\d{4})","$1 $2 $3","10[1-9]|2[02-9]","$NP$FG",],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:[57]1|98)","$NP$FG",],["(\\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[02-9]|6[1-46]|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]|3|5[4-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])","$NP$FG",],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","1[3-578]",,],["(10800)(\\d{3})(\\d{4})","$1 $2 $3","108",,],["(\\d{3})(\\d{7,8})","$1 $2","950",,]]]',
|
||||
"257": '["BI","00",,,,,"\\d{8}","[267]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"683": '["NU","00",,,,,"\\d{4}","[1-5]\\d{3}",]',
|
||||
"43": '["AT","00","0",,,"$NP$FG","\\d{3,13}","[1-9]\\d{3,12}",[["(1)(\\d{3,12})","$1 $2","1",,],["(5\\d)(\\d{3,5})","$1 $2","5[079]",,],["(5\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","5[079]",,],["(5\\d)(\\d{4})(\\d{4,7})","$1 $2 $3","5[079]",,],["(\\d{3})(\\d{3,10})","$1 $2","316|46|51|732|6(?:44|5[0-3579]|[6-9])|7(?:1|[28]0)|[89]",,],["(\\d{4})(\\d{3,9})","$1 $2","2|3(?:1[1-578]|[3-8])|4[2378]|5[2-6]|6(?:[12]|4[1-35-9]|5[468])|7(?:2[1-8]|35|4[1-8]|[5-79])",,]]]',
|
||||
"247": '["AC","00",,,,,"\\d{4,6}","[46]\\d{4}|[2-467]\\d{3}|[01589]\\d{5}",]',
|
||||
"675": '["PG","00",,,,,"\\d{7,8}","[1-9]\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[13-689]|27",,],["(\\d{4})(\\d{4})","$1 $2","20|7",,]]]',
|
||||
"376": '["AD","00",,,,,"\\d{6,8}","(?:[346-9]|180)\\d{5}",[["(\\d{3})(\\d{3})","$1 $2","[346-9]",,],["(180[02])(\\d{4})","$1 $2","1",,]]]',
|
||||
"63": '["PH","00","0",,,,"\\d{5,13}","2\\d{5,7}|[3-9]\\d{7,9}|1800\\d{7,9}",[["(2)(\\d{3})(\\d{4})","$1 $2 $3","2","($NP$FG)",],["(2)(\\d{5})","$1 $2","2","($NP$FG)",],["(\\d{4})(\\d{4,6})","$1 $2","3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|5(?:22|44)|642|8(?:62|8[245])","($NP$FG)",],["(\\d{5})(\\d{4})","$1 $2","346|4(?:27|9[35])|883","($NP$FG)",],["([3-8]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[3-8]","($NP$FG)",],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","81|9","$NP$FG",],["(1800)(\\d{3})(\\d{4})","$1 $2 $3","1",,],["(1800)(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4","1",,]]]',
|
||||
"236": '["CF","00",,,,,"\\d{8}","[278]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"590": ['["GP","00","0",,,"$NP$FG","\\d{9}","[56]\\d{8}",[["([56]90)(\\d{2})(\\d{4})","$1 $2-$3",,,]]]','["BL","00","0",,,,"\\d{9}","[56]\\d{8}",]','["MF","00","0",,,,"\\d{9}","[56]\\d{8}",]'],
|
||||
"53": '["CU","119","0",,,"($NP$FG)","\\d{4,8}","[2-57]\\d{5,7}",[["(\\d)(\\d{6,7})","$1 $2","7",,],["(\\d{2})(\\d{4,6})","$1 $2","[2-4]",,],["(\\d)(\\d{7})","$1 $2","5","$NP$FG",]]]',
|
||||
"64": '["NZ","0(?:0|161)","0",,,"$NP$FG","\\d{7,11}","6[235-9]\\d{6}|[2-57-9]\\d{7,10}",[["([34679])(\\d{3})(\\d{4})","$1-$2 $3","[346]|7[2-57-9]|9[1-9]",,],["(24099)(\\d{3})","$1 $2","240",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","21",,],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3","2(?:1[1-9]|[69]|7[0-35-9])|70|86",,],["(2\\d)(\\d{3,4})(\\d{4})","$1 $2 $3","2[028]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","2(?:10|74)|5|[89]0",,]]]',
|
||||
"965": '["KW","00",,,,,"\\d{7,8}","[12569]\\d{6,7}",[["(\\d{4})(\\d{3,4})","$1 $2","[126]|9[04-9]",,],["(\\d{3})(\\d{5})","$1 $2","5[015]|92",,]]]',
|
||||
"224": '["GN","00",,,,,"\\d{8,9}","[367]\\d{7,8}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","3",,],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[67]",,]]]',
|
||||
"973": '["BH","00",,,,,"\\d{8}","[136-9]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
|
||||
"32": '["BE","00","0",,,"$NP$FG","\\d{8,9}","[1-9]\\d{7,8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","4[6-9]",,],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[23]|4[23]|9[2-4]",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[156]|7[018]|8(?:0[1-9]|[1-79])",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","(?:80|9)0",,]]]',
|
||||
"249": '["SD","00","0",,,"$NP$FG","\\d{9}","[19]\\d{8}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",,,]]]',
|
||||
"678": '["VU","00",,,,,"\\d{5,7}","[2-57-9]\\d{4,6}",[["(\\d{3})(\\d{4})","$1 $2","[579]",,]]]',
|
||||
"52": '["MX","0[09]","01","0[12]|04[45](\\d{10})","1$1","$NP $FG","\\d{7,11}","[1-9]\\d{9,10}",[["([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]",,],["(1)([358]\\d)(\\d{4})(\\d{4})","044 $2 $3 $4","1(?:33|55|81)","$FG","$1 $2 $3 $4"],["(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])","$FG","$1 $2 $3 $4"]]]',
|
||||
"968": '["OM","00",,,,,"\\d{7,9}","(?:2[2-6]|5|9[1-9])\\d{6}|800\\d{5,6}",[["(2\\d)(\\d{6})","$1 $2","2",,],["(9\\d{3})(\\d{4})","$1 $2","9",,],["([58]00)(\\d{4,6})","$1 $2","[58]",,]]]',
|
||||
"599": ['["CW","00",,,,,"\\d{7,8}","[169]\\d{6,7}",[["(\\d{3})(\\d{4})","$1 $2","[13-7]",,],["(9)(\\d{3})(\\d{4})","$1 $2 $3","9",,]]]','["BQ","00",,,,,"\\d{7}","[347]\\d{6}",]'],
|
||||
"800": '["001",,,,,,"\\d{8}","\\d{8}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
|
||||
"386": '["SI","00","0",,,"$NP$FG","\\d{5,8}","[1-7]\\d{6,7}|[89]\\d{4,7}",[["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[12]|3[4-8]|4[24-8]|5[2-8]|7[3-8]","($NP$FG)",],["([3-7]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[37][01]|4[0139]|51|6",,],["([89][09])(\\d{3,6})","$1 $2","[89][09]",,],["([58]\\d{2})(\\d{5})","$1 $2","59|8[1-3]",,]]]',
|
||||
"679": '["FJ","0(?:0|52)",,,,,"\\d{7}(?:\\d{4})?","[36-9]\\d{6}|0\\d{10}",[["(\\d{3})(\\d{4})","$1 $2","[36-9]",,],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3","0",,]]]',
|
||||
"238": '["CV","0",,,,,"\\d{7}","[259]\\d{6}",[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
|
||||
"691": '["FM","00",,,,,"\\d{7}","[39]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"262": ['["RE","00","0",,,"$NP$FG","\\d{9}","[268]\\d{8}",[["([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]','["YT","00","0",,,"$NP$FG","\\d{9}","[268]\\d{8}",]'],
|
||||
"241": '["GA","00",,,,,"\\d{7,8}","0?\\d{7}",[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[2-7]","0$FG",],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","0",,]]]',
|
||||
"370": '["LT","00","8","[08]",,"($NP-$FG)","\\d{8}","[3-9]\\d{7}",[["([34]\\d)(\\d{6})","$1 $2","37|4(?:1|5[45]|6[2-4])",,],["([3-6]\\d{2})(\\d{5})","$1 $2","3[148]|4(?:[24]|6[09])|528|6",,],["([7-9]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","[7-9]","$NP $FG",],["(5)(2\\d{2})(\\d{4})","$1 $2 $3","52[0-79]",,]]]',
|
||||
"256": '["UG","00[057]","0",,,"$NP$FG","\\d{5,9}","\\d{9}",[["(\\d{3})(\\d{6})","$1 $2","[7-9]|20(?:[013-8]|2[5-9])|4(?:6[45]|[7-9])",,],["(\\d{2})(\\d{7})","$1 $2","3|4(?:[1-5]|6[0-36-9])",,],["(2024)(\\d{5})","$1 $2","2024",,]]]',
|
||||
"677": '["SB","0[01]",,,,,"\\d{5,7}","[1-9]\\d{4,6}",[["(\\d{2})(\\d{5})","$1 $2","[7-9]",,]]]',
|
||||
"377": '["MC","00","0",,,"$NP$FG","\\d{8,9}","[4689]\\d{7,8}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","9","$FG",],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","4",,],["(6)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","6",,],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3","8","$FG",]]]',
|
||||
"382": '["ME","00","0",,,"$NP$FG","\\d{6,9}","[2-9]\\d{7,8}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[2-57-9]|6[036-9]",,],["(67)(9)(\\d{3})(\\d{3})","$1 $2 $3 $4","679",,]]]',
|
||||
"231": '["LR","00","0",,,"$NP$FG","\\d{7,9}","2\\d{7}|[37-9]\\d{8}|[45]\\d{6}",[["(2\\d)(\\d{3})(\\d{3})","$1 $2 $3","2",,],["([79]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[79]",,],["([4-6])(\\d{3})(\\d{3})","$1 $2 $3","[4-6]",,],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[38]",,]]]',
|
||||
"591": '["BO","00(1\\d)?","0","0(1\\d)?",,,"\\d{7,8}","[23467]\\d{7}",[["([234])(\\d{7})","$1 $2","[234]",,],["([67]\\d{7})","$1","[67]",,]]]',
|
||||
"808": '["001",,,,,,"\\d{8}","\\d{8}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
|
||||
"964": '["IQ","00","0",,,"$NP$FG","\\d{6,10}","[1-7]\\d{7,9}",[["(1)(\\d{3})(\\d{4})","$1 $2 $3","1",,],["([2-6]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","[2-6]",,],["(7\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","7",,]]]',
|
||||
"225": '["CI","00",,,,,"\\d{8}","[02-7]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"992": '["TJ","810","8",,,"($NP) $FG","\\d{3,9}","[3-59]\\d{8}",[["([349]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3","[34]7|91[78]",,],["([459]\\d)(\\d{3})(\\d{4})","$1 $2 $3","4[48]|5|9(?:1[59]|[0235-9])",,],["(331700)(\\d)(\\d{2})","$1 $2 $3","331",,],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3","3[1-5]",,]]]',
|
||||
"55": '["BR","00(?:1[45]|2[135]|31|4[13])","0","(?:0|90)(?:(1[245]|2[135]|[34]1)(\\d{10,11}))?","$2",,"\\d{8,11}","[1-46-9]\\d{7,10}|5\\d{8,9}",[["(\\d{4})(\\d{4})","$1-$2","[2-9](?:[1-9]|0[1-9])","$FG","NA"],["(\\d{5})(\\d{4})","$1-$2","9(?:[1-9]|0[1-9])","$FG","NA"],["(\\d{3,5})","$1","1[125689]","$FG","NA"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3","(?:[189][1-9]|2[12478])9","($FG)",],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3","[1-9][1-9]","($FG)",],["([34]00\\d)(\\d{4})","$1-$2","[34]00",,],["([3589]00)(\\d{2,3})(\\d{4})","$1 $2 $3","[3589]00","$NP$FG",]]]',
|
||||
"674": '["NR","00",,,,,"\\d{7}","[458]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"967": '["YE","00","0",,,"$NP$FG","\\d{6,9}","[1-7]\\d{6,8}",[["([1-7])(\\d{3})(\\d{3,4})","$1 $2 $3","[1-6]|7[24-68]",,],["(7\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","7[0137]",,]]]',
|
||||
"49": '["DE","00","0",,,"$NP$FG","\\d{2,15}","[1-35-9]\\d{3,14}|4(?:[0-8]\\d{4,12}|9(?:[0-37]\\d|4(?:[1-35-8]|4\\d?)|5\\d{1,2}|6[1-8]\\d?)\\d{2,8})",[["(1\\d{2})(\\d{7,8})","$1 $2","1[67]",,],["(1\\d{3})(\\d{7})","$1 $2","15",,],["(\\d{2})(\\d{3,11})","$1 $2","3[02]|40|[68]9",,],["(\\d{3})(\\d{3,11})","$1 $2","2(?:\\d1|0[2389]|1[24]|28|34)|3(?:[3-9][15]|40)|[4-8][1-9]1|9(?:06|[1-9]1)",,],["(\\d{4})(\\d{2,11})","$1 $2","[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])",,],["(3\\d{4})(\\d{1,10})","$1 $2","3",,],["(800)(\\d{7,12})","$1 $2","800",,],["(177)(99)(\\d{7,8})","$1 $2 $3","177",,],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3","(?:18|90)0|137",,],["(1\\d{2})(\\d{5,11})","$1 $2","181",,],["(18\\d{3})(\\d{6})","$1 $2","185",,],["(18\\d{2})(\\d{7})","$1 $2","18[68]",,],["(18\\d)(\\d{8})","$1 $2","18[2-579]",,],["(700)(\\d{4})(\\d{4})","$1 $2 $3","700",,],["(138)(\\d{4})","$1 $2","138",,]]]',
|
||||
"31": '["NL","00","0",,,"$NP$FG","\\d{5,10}","1\\d{4,8}|[2-7]\\d{8}|[89]\\d{6,9}",[["([1-578]\\d)(\\d{3})(\\d{4})","$1 $2 $3","1[035]|2[0346]|3[03568]|4[0356]|5[0358]|7|8[4578]",,],["([1-5]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","1[16-8]|2[259]|3[124]|4[17-9]|5[124679]",,],["(6)(\\d{8})","$1 $2","6[0-57-9]",,],["(66)(\\d{7})","$1 $2","66",,],["(14)(\\d{3,4})","$1 $2","14","$FG",],["([89]0\\d)(\\d{4,7})","$1 $2","80|9",,]]]',
|
||||
"970": '["PS","00","0",,,"$NP$FG","\\d{4,10}","[24589]\\d{7,8}|1(?:[78]\\d{8}|[49]\\d{2,3})",[["([2489])(2\\d{2})(\\d{4})","$1 $2 $3","[2489]",,],["(5[69]\\d)(\\d{3})(\\d{3})","$1 $2 $3","5",,],["(1[78]00)(\\d{3})(\\d{3})","$1 $2 $3","1[78]","$FG",]]]',
|
||||
"58": '["VE","00","0",,,"$NP$FG","\\d{7,10}","[24589]\\d{9}",[["(\\d{3})(\\d{7})","$1-$2",,,]]]',
|
||||
"856": '["LA","00","0",,,"$NP$FG","\\d{6,10}","[2-8]\\d{7,9}",[["(20)(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4","20",,],["([2-8]\\d)(\\d{3})(\\d{3})","$1 $2 $3","2[13]|3[14]|[4-8]",,],["(30)(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4","30",,]]]',
|
||||
"354": '["IS","00",,,,,"\\d{7,9}","[4-9]\\d{6}|38\\d{7}",[["(\\d{3})(\\d{4})","$1 $2","[4-9]",,],["(3\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","3",,]]]',
|
||||
"242": '["CG","00",,,,,"\\d{9}","[028]\\d{8}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[02]",,],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3","8",,]]]',
|
||||
"423": '["LI","00","0",,,,"\\d{7,9}","6\\d{8}|[23789]\\d{6}",[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3","[23789]",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","6[56]",,],["(69)(7\\d{2})(\\d{4})","$1 $2 $3","697",,]]]',
|
||||
"213": '["DZ","00","0",,,"$NP$FG","\\d{8,9}","(?:[1-4]|[5-9]\\d)\\d{7}",[["([1-4]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[1-4]",,],["([5-8]\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[5-8]",,],["(9\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","9",,]]]',
|
||||
"371": '["LV","00",,,,,"\\d{8}","[2689]\\d{7}",[["([2689]\\d)(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
|
||||
"503": '["SV","00",,,,,"\\d{7,8}|\\d{11}","[267]\\d{7}|[89]\\d{6}(?:\\d{4})?",[["(\\d{4})(\\d{4})","$1 $2","[267]",,],["(\\d{3})(\\d{4})","$1 $2","[89]",,],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","[89]",,]]]',
|
||||
"685": '["WS","0",,,,,"\\d{5,7}","[2-8]\\d{4,6}",[["(8\\d{2})(\\d{3,4})","$1 $2","8",,],["(7\\d)(\\d{5})","$1 $2","7",,],["(\\d{5})","$1","[2-6]",,]]]',
|
||||
"880": '["BD","00[12]?","0",,,"$NP$FG","\\d{6,10}","[2-79]\\d{5,9}|1\\d{9}|8[0-7]\\d{4,8}",[["(2)(\\d{7})","$1-$2","2",,],["(\\d{2})(\\d{4,6})","$1-$2","[3-79]1",,],["(\\d{4})(\\d{3,6})","$1-$2","1|3(?:0|[2-58]2)|4(?:0|[25]2|3[23]|[4689][25])|5(?:[02-578]2|6[25])|6(?:[0347-9]2|[26][25])|7[02-9]2|8(?:[023][23]|[4-7]2)|9(?:[02][23]|[458]2|6[016])",,],["(\\d{3})(\\d{3,7})","$1-$2","[3-79][2-9]|8",,]]]',
|
||||
"265": '["MW","00","0",,,"$NP$FG","\\d{7,9}","(?:1(?:\\d{2})?|[2789]\\d{2})\\d{6}",[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3","1",,],["(2\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","2",,],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[1789]",,]]]',
|
||||
"65": '["SG","0[0-3]\\d",,,,,"\\d{8,11}","[36]\\d{7}|[17-9]\\d{7,10}",[["([3689]\\d{3})(\\d{4})","$1 $2","[369]|8[1-9]",,],["(1[89]00)(\\d{3})(\\d{4})","$1 $2 $3","1[89]",,],["(7000)(\\d{4})(\\d{3})","$1 $2 $3","70",,],["(800)(\\d{3})(\\d{4})","$1 $2 $3","80",,]]]',
|
||||
"504": '["HN","00",,,,,"\\d{8}","[237-9]\\d{7}",[["(\\d{4})(\\d{4})","$1-$2",,,]]]',
|
||||
"688": '["TV","00",,,,,"\\d{5,6}","[29]\\d{4,5}",]',
|
||||
"84": '["VN","00","0",,,"$NP$FG","\\d{7,10}","[17]\\d{6,9}|[2-69]\\d{7,9}|8\\d{6,8}",[["([17]99)(\\d{4})","$1 $2","[17]99",,],["([48])(\\d{4})(\\d{4})","$1 $2 $3","[48]",,],["([235-7]\\d)(\\d{4})(\\d{3})","$1 $2 $3","2[025-79]|3[0136-9]|5[2-9]|6[0-46-8]|7[02-79]",,],["(80)(\\d{5})","$1 $2","80",,],["(69\\d)(\\d{4,5})","$1 $2","69",,],["([235-7]\\d{2})(\\d{4})(\\d{3})","$1 $2 $3","2[1348]|3[25]|5[01]|65|7[18]",,],["(9\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","9",,],["(1[2689]\\d)(\\d{3})(\\d{4})","$1 $2 $3","1(?:[26]|8[68]|99)",,],["(1[89]00)(\\d{4,6})","$1 $2","1[89]0","$FG",]]]',
|
||||
"255": '["TZ","00[056]","0",,,"$NP$FG","\\d{7,9}","\\d{9}",[["([24]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[24]",,],["([67]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[67]",,],["([89]\\d{2})(\\d{2})(\\d{4})","$1 $2 $3","[89]",,]]]',
|
||||
"222": '["MR","00",,,,,"\\d{8}","[2-48]\\d{7}",[["([2-48]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"230": '["MU","0(?:0|[2-7]0|33)",,,,,"\\d{7,8}","[2-9]\\d{6,7}",[["([2-46-9]\\d{2})(\\d{4})","$1 $2","[2-46-9]",,],["(5\\d{3})(\\d{4})","$1 $2","5",,]]]',
|
||||
"592": '["GY","001",,,,,"\\d{7}","[2-4679]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"41": '["CH","00","0",,,"$NP$FG","\\d{9}(?:\\d{3})?","[2-9]\\d{8}|860\\d{9}",[["([2-9]\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[2-7]|[89]1",,],["([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","8[047]|90",,],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5","860",,]]]',
|
||||
"39": '["IT","00",,,,,"\\d{6,11}","[01589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})",[["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3","0[26]|55",,],["(0[26])(\\d{4})(\\d{5})","$1 $2 $3","0[26]",,],["(0[26])(\\d{4,6})","$1 $2","0[26]",,],["(0\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3","0[13-57-9][0159]",,],["(\\d{3})(\\d{3,6})","$1 $2","0[13-57-9][0159]|8(?:03|4[17]|9[245])",,],["(0\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","0[13-57-9][2-46-8]",,],["(0\\d{3})(\\d{2,6})","$1 $2","0[13-57-9][2-46-8]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","[13]|8(?:00|4[08]|9[59])",,],["(\\d{4})(\\d{4})","$1 $2","894",,],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3","3",,]]]',
|
||||
"993": '["TM","810","8",,,"($NP $FG)","\\d{8}","[1-6]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4","12",,],["(\\d{2})(\\d{6})","$1 $2","6","$NP $FG",],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4","13|[2-5]",,]]]',
|
||||
"888": '["001",,,,,,"\\d{11}","\\d{11}",[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",,,]]]',
|
||||
"353": '["IE","00","0",,,"($NP$FG)","\\d{5,10}","[124-9]\\d{6,9}",[["(1)(\\d{3,4})(\\d{4})","$1 $2 $3","1",,],["(\\d{2})(\\d{5})","$1 $2","2[24-9]|47|58|6[237-9]|9[35-9]",,],["(\\d{3})(\\d{5})","$1 $2","40[24]|50[45]",,],["(48)(\\d{4})(\\d{4})","$1 $2 $3","48",,],["(818)(\\d{3})(\\d{3})","$1 $2 $3","81",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","[24-69]|7[14]",,],["([78]\\d)(\\d{3,4})(\\d{4})","$1 $2 $3","76|8[35-9]","$NP$FG",],["(700)(\\d{3})(\\d{3})","$1 $2 $3","70","$NP$FG",],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3","1(?:8[059]|5)","$FG",]]]',
|
||||
"966": '["SA","00","0",,,"$NP$FG","\\d{7,10}","1\\d{7,8}|(?:[2-467]|92)\\d{7}|5\\d{8}|8\\d{9}",[["([1-467])(\\d{3})(\\d{4})","$1 $2 $3","[1-467]",,],["(1\\d)(\\d{3})(\\d{4})","$1 $2 $3","1[1-467]",,],["(5\\d)(\\d{3})(\\d{4})","$1 $2 $3","5",,],["(92\\d{2})(\\d{5})","$1 $2","92","$FG",],["(800)(\\d{3})(\\d{4})","$1 $2 $3","80","$FG",],["(811)(\\d{3})(\\d{3,4})","$1 $2 $3","81",,]]]',
|
||||
"380": '["UA","00","0",,,"$NP$FG","\\d{5,9}","[3-689]\\d{8}",[["([3-689]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[38]9|4(?:[45][0-5]|87)|5(?:0|6[37]|7[37])|6[36-8]|9[1-9]",,],["([3-689]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","3[1-8]2|4[13678]2|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90",,],["([3-6]\\d{3})(\\d{5})","$1 $2","3(?:5[013-9]|[1-46-8])|4(?:[137][013-9]|6|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6[0135-9]|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])",,]]]',
|
||||
"98": '["IR","00","0",,,"$NP$FG","\\d{4,10}","[1-8]\\d{9}|9(?:[0-4]\\d{8}|9\\d{2,8})",[["(21)(\\d{3,5})","$1 $2","21",,],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","[1-8]",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","9",,],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3","9",,],["(\\d{3})(\\d{3})","$1 $2","9",,]]]',
|
||||
"971": '["AE","00","0",,,"$NP$FG","\\d{5,12}","[2-79]\\d{7,8}|800\\d{2,9}",[["([2-4679])(\\d{3})(\\d{4})","$1 $2 $3","[2-4679][2-8]",,],["(5[0256])(\\d{3})(\\d{4})","$1 $2 $3","5",,],["([479]00)(\\d)(\\d{5})","$1 $2 $3","[479]0","$FG",],["([68]00)(\\d{2,9})","$1 $2","60|8","$FG",]]]',
|
||||
"30": '["GR","00",,,,,"\\d{10}","[26-9]\\d{9}",[["([27]\\d)(\\d{4})(\\d{4})","$1 $2 $3","21|7",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","2[2-9]1|[689]",,],["(2\\d{3})(\\d{6})","$1 $2","2[2-9][02-9]",,]]]',
|
||||
"228": '["TG","00",,,,,"\\d{8}","[29]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"48": '["PL","00",,,,,"\\d{6,9}","[12]\\d{6,8}|[3-57-9]\\d{8}|6\\d{5,8}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[14]|2[0-57-9]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145]",,],["(\\d{2})(\\d{1})(\\d{4})","$1 $2 $3","[12]2",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","261|39|5[0137]|6[0469]|7[02389]|8[08]",,],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3","64",,],["(\\d{3})(\\d{3})","$1 $2","64",,]]]',
|
||||
"886": '["TW","0(?:0[25679]|19)","0",,,"$NP$FG","\\d{8,10}","[2-689]\\d{7,8}|7\\d{7,9}",[["([2-8])(\\d{3,4})(\\d{4})","$1 $2 $3","[2-6]|[78][1-9]",,],["([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","80|9",,],["(70)(\\d{4})(\\d{4})","$1 $2 $3","70",,]]]',
|
||||
"212": ['["MA","00","0",,,"$NP$FG","\\d{9}","[5689]\\d{8}",[["([56]\\d{2})(\\d{6})","$1-$2","5(?:2[015-7]|3[0-4])|6",,],["([58]\\d{3})(\\d{5})","$1-$2","5(?:2[2-489]|3[5-9])|892",,],["(5\\d{4})(\\d{4})","$1-$2","5(?:29|38)",,],["(8[09])(\\d{7})","$1-$2","8(?:0|9[013-9])",,]]]','["EH","00","0",,,"$NP$FG","\\d{9}","[5689]\\d{8}",]'],
|
||||
"372": '["EE","00",,,,,"\\d{4,10}","1\\d{3,4}|[3-9]\\d{6,7}|800\\d{6,7}",[["([3-79]\\d{2})(\\d{4})","$1 $2","[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]",,],["(70)(\\d{2})(\\d{4})","$1 $2 $3","70",,],["(8000)(\\d{3})(\\d{3})","$1 $2 $3","800",,],["([458]\\d{3})(\\d{3,4})","$1 $2","40|5|8(?:00|[1-5])",,]]]',
|
||||
"598": '["UY","0(?:1[3-9]\\d|0)","0",,,,"\\d{7,8}","[2489]\\d{6,7}",[["(\\d{4})(\\d{4})","$1 $2","[24]",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","9[1-9]","$NP$FG",],["(\\d{3})(\\d{4})","$1 $2","[89]0","$NP$FG",]]]',
|
||||
"502": '["GT","00",,,,,"\\d{8}(?:\\d{3})?","[2-7]\\d{7}|1[89]\\d{9}",[["(\\d{4})(\\d{4})","$1 $2","[2-7]",,],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3","1",,]]]',
|
||||
"82": '["KR","00(?:[124-68]|[37]\\d{2})","0","0(8[1-46-8]|85\\d{2})?",,"$NP$FG","\\d{4,10}","[1-7]\\d{3,9}|8\\d{8}",[["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3","1(?:0|1[19]|[69]9|5[458])|[57]0",,],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3","1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][1-9]",,],["(\\d{3})(\\d)(\\d{4})","$1-$2-$3","131",,],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3","131",,],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3","13[2-9]",,],["(\\d{2})(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3-$4","30",,],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3","2[1-9]",,],["(\\d)(\\d{3,4})","$1-$2","21[0-46-9]",,],["(\\d{2})(\\d{3,4})","$1-$2","[3-6][1-9]1",,],["(\\d{4})(\\d{4})","$1-$2","1(?:5[46-9]|6[04678]|8[0579])","$FG",]]]',
|
||||
"253": '["DJ","00",,,,,"\\d{8}","[27]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"91": '["IN","00","0",,,"$NP$FG","\\d{6,13}","1\\d{7,12}|[2-9]\\d{9,10}",[["(\\d{5})(\\d{5})","$1 $2","7(?:0[2-9]|2[012579]|3[057-9]|4[0-389]|6[0-35-9]|[57]|8[0-79])|8(?:0[015689]|1[0-57-9]|2[2356-9]|3[0-57-9]|[45]|6[02457-9]|7[1-69]|8[0124-9]|9[02-9])|9",,],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","11|2[02]|33|4[04]|79|80[2-46]",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1(?:2[0-249]|3[0-25]|4[145]|[569][14]|7[1257]|8[1346]|[68][1-9])|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[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|[36][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)",,],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3","1(?:[23579]|[468][1-9])|[2-8]",,],["(1600)(\\d{2})(\\d{4})","$1 $2 $3","160","$FG",],["(1800)(\\d{4,5})","$1 $2","180","$FG",],["(18[06]0)(\\d{2,4})(\\d{4})","$1 $2 $3","18[06]","$FG",],["(140)(\\d{3})(\\d{4})","$1 $2 $3","140","$FG",],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4","18[06]","$FG",]]]',
|
||||
"389": '["MK","00","0",,,"$NP$FG","\\d{8}","[2-578]\\d{7}",[["(2)(\\d{3})(\\d{4})","$1 $2 $3","2",,],["([347]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[347]",,],["([58]\\d{2})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4","[58]",,]]]',
|
||||
"1": ['["US","011","1",,,,"\\d{7}(?:\\d{3})?","[2-9]\\d{9}",[["(\\d{3})(\\d{4})","$1-$2",,,"NA"],["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",,,"$1-$2-$3"]]]','["AI","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["AS","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["BB","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["BM","011","1",,,,"\\d{7}(?:\\d{3})?","[4589]\\d{9}",]','["BS","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["CA","011","1",,,,"\\d{7}(?:\\d{3})?","[2-9]\\d{9}|3\\d{6}",]','["DM","011","1",,,,"\\d{7}(?:\\d{3})?","[57-9]\\d{9}",]','["DO","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["GD","011","1",,,,"\\d{7}(?:\\d{3})?","[4589]\\d{9}",]','["GU","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["JM","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["KN","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["KY","011","1",,,,"\\d{7}(?:\\d{3})?","[3589]\\d{9}",]','["LC","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["MP","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["MS","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["PR","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["SX","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["TC","011","1",,,,"\\d{7}(?:\\d{3})?","[5689]\\d{9}",]','["TT","011","1",,,,"\\d{7}(?:\\d{3})?","[589]\\d{9}",]','["AG","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["VC","011","1",,,,"\\d{7}(?:\\d{3})?","[5789]\\d{9}",]','["VG","011","1",,,,"\\d{7}(?:\\d{3})?","[2589]\\d{9}",]','["VI","011","1",,,,"\\d{7}(?:\\d{3})?","[3589]\\d{9}",]'],
|
||||
"60": '["MY","00","0",,,,"\\d{6,10}","[13-9]\\d{7,9}",[["([4-79])(\\d{3})(\\d{4})","$1-$2 $3","[4-79]","$NP$FG",],["(3)(\\d{4})(\\d{4})","$1-$2 $3","3","$NP$FG",],["([18]\\d)(\\d{3})(\\d{3,4})","$1-$2 $3","1[02-46-9][1-9]|8","$NP$FG",],["(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","$NP$FG",],["(15[49])(\\d{3})(\\d{4})","$1-$2 $3","15","$NP$FG",]]]',
|
||||
"355": '["AL","00","0",,,"$NP$FG","\\d{5,9}","[2-57]\\d{7}|6\\d{8}|8\\d{5,7}|9\\d{5}",[["(4)(\\d{3})(\\d{4})","$1 $2 $3","4[0-6]",,],["(6[6-9])(\\d{3})(\\d{4})","$1 $2 $3","6",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","[2358][2-5]|4[7-9]",,],["(\\d{3})(\\d{3,5})","$1 $2","[235][16-9]|8[016-9]|[79]",,]]]',
|
||||
"254": '["KE","000","0",,,"$NP$FG","\\d{7,10}","20\\d{6,7}|[4-9]\\d{6,9}",[["(\\d{2})(\\d{5,7})","$1 $2","[24-6]",,],["(\\d{3})(\\d{6,7})","$1 $2","7",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","[89]",,]]]',
|
||||
"223": '["ML","00",,,,,"\\d{8}","[246-9]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[246-9]",,],["(\\d{4})","$1","67|74",,"NA"]]]',
|
||||
"686": '["KI","00",,"0",,,"\\d{5,8}","[2458]\\d{4}|3\\d{4,7}|7\\d{7}",]',
|
||||
"994": '["AZ","00","0",,,"($NP$FG)","\\d{7,9}","[1-9]\\d{8}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","(?:1[28]|2(?:[45]2|[0-36])|365)",,],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[4-8]","$NP$FG",],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","9","$NP$FG",]]]',
|
||||
"979": '["001",,,,,,"\\d{9}","\\d{9}",[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",,,]]]',
|
||||
"66": '["TH","00","0",,,"$NP$FG","\\d{4}|\\d{8,10}","[2-9]\\d{7,8}|1\\d{3}(?:\\d{5,6})?",[["(2)(\\d{3})(\\d{4})","$1 $2 $3","2",,],["([13-9]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","14|[3-9]",,],["(1[89]00)(\\d{3})(\\d{3})","$1 $2 $3","1","$FG",]]]',
|
||||
"233": '["GH","00","0",,,"$NP$FG","\\d{7,9}","[235]\\d{8}|8\\d{7}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[235]",,],["(\\d{3})(\\d{5})","$1 $2","8",,]]]',
|
||||
"593": '["EC","00","0",,,"($NP$FG)","\\d{7,11}","1\\d{9,10}|[2-8]\\d{7}|9\\d{8}",[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3","[247]|[356][2-8]",,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","9","$NP$FG",],["(1800)(\\d{3})(\\d{3,4})","$1 $2 $3","1","$FG",]]]',
|
||||
"509": '["HT","00",,,,,"\\d{8}","[2-489]\\d{7}",[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",,,]]]',
|
||||
"54": '["AR","00","0","0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))?15)?","9$1","$NP$FG","\\d{6,11}","11\\d{8}|[2368]\\d{9}|9\\d{10}",[["([68]\\d{2})(\\d{3})(\\d{4})","$1-$2-$3","[68]",,],["(\\d{2})(\\d{4})","$1-$2","[2-9]","$FG","NA"],["(\\d{3})(\\d{4})","$1-$2","[2-9]","$FG","NA"],["(\\d{4})(\\d{4})","$1-$2","[2-9]","$FG","NA"],["(9)(11)(\\d{4})(\\d{4})","$2 15-$3-$4","911",,"$1 $2 $3-$4"],["(9)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4","9(?:2[234689]|3[3-8])",,"$1 $2 $3-$4"],["(9)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4","9[23]",,"$1 $2 $3-$4"],["(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[1-358]|5[138]|6[24]|7[069]|8[013578])",,],["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3","[23]",,],["(\\d{3})","$1","1[012]|911","$FG","NA"]]]',
|
||||
"57": '["CO","00(?:4(?:[14]4|56)|[579])","0","0([3579]|4(?:44|56))?",,,"\\d{7,11}","(?:[13]\\d{0,3}|[24-8])\\d{7}",[["(\\d)(\\d{7})","$1 $2","1(?:8[2-9]|9[0-3]|[2-7])|[24-8]","($FG)",],["(\\d{3})(\\d{7})","$1 $2","3",,],["(1)(\\d{3})(\\d{7})","$1-$2-$3","1(?:80|9[04])","$NP$FG","$1 $2 $3"]]]',
|
||||
"597": '["SR","00",,,,,"\\d{6,7}","[2-8]\\d{5,6}",[["(\\d{3})(\\d{3})","$1-$2","[2-4]|5[2-58]",,],["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3","56",,],["(\\d{3})(\\d{4})","$1-$2","59|[6-8]",,]]]',
|
||||
"676": '["TO","00",,,,,"\\d{5,7}","[02-8]\\d{4,6}",[["(\\d{2})(\\d{3})","$1-$2","[1-6]|7[0-4]|8[05]",,],["(\\d{3})(\\d{4})","$1 $2","7[5-9]|8[47-9]",,],["(\\d{4})(\\d{3})","$1 $2","0",,]]]',
|
||||
"505": '["NI","00",,,,,"\\d{8}","[12578]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2",,,]]]',
|
||||
"850": '["KP","00|99","0",,,"$NP$FG","\\d{6,8}|\\d{10}","1\\d{9}|[28]\\d{7}",[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1",,],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3","2",,],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","8",,]]]',
|
||||
"7": ['["RU","810","8",,,"$NP ($FG)","\\d{10}","[3489]\\d{9}",[["(\\d{3})(\\d{2})(\\d{2})","$1-$2-$3","[1-79]","$FG","NA"],["([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",,]]]','["KZ","810","8",,,,"\\d{10}","(?:33\\d|7\\d{2}|80[09])\\d{7}",]'],
|
||||
"268": '["SZ","00",,,,,"\\d{8}","[027]\\d{7}",[["(\\d{4})(\\d{4})","$1 $2","[027]",,]]]',
|
||||
"501": '["BZ","00",,,,,"\\d{7}(?:\\d{4})?","[2-8]\\d{6}|0\\d{10}",[["(\\d{3})(\\d{4})","$1-$2","[2-8]",,],["(0)(800)(\\d{4})(\\d{3})","$1-$2-$3-$4","0",,]]]',
|
||||
"252": '["SO","00","0",,,,"\\d{7,9}","[1-79]\\d{6,8}",[["(\\d)(\\d{6})","$1 $2","2[0-79]|[13-5]",,],["(\\d)(\\d{7})","$1 $2","24|[67]",,],["(\\d{2})(\\d{5,7})","$1 $2","15|28|6[1378]",,],["(69\\d)(\\d{6})","$1 $2","69",,],["(90\\d)(\\d{3})(\\d{3})","$1 $2 $3","90",,]]]',
|
||||
"229": '["BJ","00",,,,,"\\d{4,8}","[2689]\\d{7}|7\\d{3}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"680": '["PW","01[12]",,,,,"\\d{7}","[2-8]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"263": '["ZW","00","0",,,"$NP$FG","\\d{3,10}","2(?:[012457-9]\\d{3,8}|6\\d{3,6})|[13-79]\\d{4,8}|8[06]\\d{8}",[["([49])(\\d{3})(\\d{2,5})","$1 $2 $3","4|9[2-9]",,],["([179]\\d)(\\d{3})(\\d{3,4})","$1 $2 $3","[19]1|7",,],["(86\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","86[24]",,],["([2356]\\d{2})(\\d{3,5})","$1 $2","2(?:[278]|0[45]|[49]8)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])",,],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3","2(?:[278]|0[45]|48)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])|80",,],["([1-356]\\d)(\\d{3,5})","$1 $2","1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])",,],["([1-356]\\d)(\\d{3})(\\d{3})","$1 $2 $3","1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])",,],["([25]\\d{3})(\\d{3,5})","$1 $2","(?:25|54)8",,],["([25]\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","(?:25|54)8",,],["(8\\d{3})(\\d{6})","$1 $2","86",,]]]',
|
||||
"90": '["TR","00","0",,,,"\\d{7,10}","[2-589]\\d{9}|444\\d{4}",[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","[23]|4(?:[0-35-9]|4[0-35-9])","($NP$FG)",],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","[589]","$NP$FG",],["(444)(\\d{1})(\\d{3})","$1 $2 $3","444",,]]]',
|
||||
"352": '["LU","00",,"(15(?:0[06]|1[12]|35|4[04]|55|6[26]|77|88|99)\\d)",,,"\\d{4,11}","[24-9]\\d{3,10}|3(?:[0-46-9]\\d{2,9}|5[013-9]\\d{1,8})",[["(\\d{2})(\\d{3})","$1 $2","[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])",,],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3","[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])",,],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","20",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4","2(?:[0367]|4[3-8])",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4","20",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5","2(?:[0367]|4[3-8])",,],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,4})","$1 $2 $3 $4","2(?:[12589]|4[12])|[3-5]|7[1-9]|8(?:[1-9]|0[2-9])|9(?:[1-9]|0[2-46-9])",,],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3","70|80[01]|90[015]",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","6",,]]]',
|
||||
"47": ['["NO","00",,,,,"\\d{5}(?:\\d{3})?","0\\d{4}|[2-9]\\d{7}",[["([489]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","[489]",,],["([235-7]\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[235-7]",,]]]','["SJ","00",,,,,"\\d{5}(?:\\d{3})?","0\\d{4}|[4789]\\d{7}",]'],
|
||||
"243": '["CD","00","0",,,"$NP$FG","\\d{7,9}","[2-6]\\d{6}|[18]\\d{6,8}|9\\d{8}",[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","12",,],["([89]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","8[0-2459]|9",,],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","88",,],["(\\d{2})(\\d{5})","$1 $2","[1-6]",,]]]',
|
||||
"220": '["GM","00",,,,,"\\d{7}","[2-9]\\d{6}",[["(\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"687": '["NC","00",,,,,"\\d{6}","[2-57-9]\\d{5}",[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3","[2-46-9]|5[0-4]",,]]]',
|
||||
"995": '["GE","00","0",,,,"\\d{6,9}","[34578]\\d{8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[348]","$NP$FG",],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","7","$NP$FG",],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","5","$FG",]]]',
|
||||
"961": '["LB","00","0",,,,"\\d{7,8}","[13-9]\\d{6,7}",[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3","[13-6]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]|9","$NP$FG",],["([7-9]\\d)(\\d{3})(\\d{3})","$1 $2 $3","[89][01]|7(?:[01]|6[013-9]|8[89]|9[1-3])",,]]]',
|
||||
"40": '["RO","00","0",,,"$NP$FG","\\d{6,9}","2\\d{5,8}|[37-9]\\d{8}",[["([237]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[23]1",,],["(21)(\\d{4})","$1 $2","21",,],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[23][3-7]|[7-9]",,],["(2\\d{2})(\\d{3})","$1 $2","2[3-6]",,]]]',
|
||||
"232": '["SL","00","0",,,"($NP$FG)","\\d{6,8}","[2-57-9]\\d{7}",[["(\\d{2})(\\d{6})","$1 $2",,,]]]',
|
||||
"594": '["GF","00","0",,,"$NP$FG","\\d{9}","[56]\\d{8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"976": '["MN","001","0",,,"$NP$FG","\\d{6,10}","[12]\\d{7,9}|[57-9]\\d{7}",[["([12]\\d)(\\d{2})(\\d{4})","$1 $2 $3","[12]1",,],["([12]2\\d)(\\d{5,6})","$1 $2","[12]2[1-3]",,],["([12]\\d{3})(\\d{5})","$1 $2","[12](?:27|[3-5])",,],["(\\d{4})(\\d{4})","$1 $2","[57-9]","$FG",],["([12]\\d{4})(\\d{4,5})","$1 $2","[12](?:27|[3-5])",,]]]',
|
||||
"20": '["EG","00","0",,,"$NP$FG","\\d{5,10}","1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}",[["(\\d)(\\d{7,8})","$1 $2","[23]",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1[012]|[89]00",,],["(\\d{2})(\\d{6,7})","$1 $2","1[35]|[4-6]|[89][2-9]",,]]]',
|
||||
"689": '["PF","00",,,,,"\\d{6}(?:\\d{2})?","4\\d{5,7}|8\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","4[09]|8[79]",,],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3","44",,]]]',
|
||||
"56": '["CL","(?: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]))",,"$NP$FG","\\d{7,11}","(?:[2-9]|600|123)\\d{7,8}",[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3","22","($FG)",],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","[357]|4[1-35]|6[13-57]","($FG)",],["(9)(\\d{4})(\\d{4})","$1 $2 $3","9",,],["(44)(\\d{3})(\\d{4})","$1 $2 $3","44",,],["([68]00)(\\d{3})(\\d{3,4})","$1 $2 $3","60|8","$FG",],["(600)(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4","60","$FG",],["(1230)(\\d{3})(\\d{4})","$1 $2 $3","1","$FG",],["(\\d{5})(\\d{4})","$1 $2","219","($FG)",],["(\\d{4,5})","$1","[1-9]","$FG","NA"]]]',
|
||||
"596": '["MQ","00","0",,,"$NP$FG","\\d{9}","[56]\\d{8}",[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"508": '["PM","00","0",,,"$NP$FG","\\d{6}","[45]\\d{5}",[["([45]\\d)(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
|
||||
"269": '["KM","00",,,,,"\\d{7}","[379]\\d{6}",[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
|
||||
"358": ['["FI","00|99[049]","0",,,"$NP$FG","\\d{5,12}","1\\d{4,11}|[2-9]\\d{4,10}",[["(\\d{3})(\\d{3,7})","$1 $2","(?:[1-3]00|[6-8]0)",,],["(\\d{2})(\\d{4,10})","$1 $2","[14]|2[09]|50|7[135]",,],["(\\d)(\\d{4,11})","$1 $2","[25689][1-8]|3",,]]]','["AX","00|99[049]","0",,,"$NP$FG","\\d{5,12}","[135]\\d{5,9}|[27]\\d{4,9}|4\\d{5,10}|6\\d{7,8}|8\\d{6,9}",]'],
|
||||
"251": '["ET","00","0",,,"$NP$FG","\\d{7,9}","[1-59]\\d{8}",[["([1-59]\\d)(\\d{3})(\\d{4})","$1 $2 $3",,,]]]',
|
||||
"681": '["WF","00",,,,,"\\d{6}","[5-7]\\d{5}",[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,,]]]',
|
||||
"853": '["MO","00",,,,,"\\d{8}","[268]\\d{7}",[["([268]\\d{3})(\\d{4})","$1 $2",,,]]]',
|
||||
"44": ['["GB","00","0",,,"$NP$FG","\\d{4,10}","\\d{7,10}",[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3","2|5[56]|7(?:0|6[013-9])",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","1(?:1|\\d1)|3|9[018]",,],["(\\d{5})(\\d{4,5})","$1 $2","1(?:38|5[23]|69|76|94)",,],["(1\\d{3})(\\d{5,6})","$1 $2","1",,],["(7\\d{3})(\\d{6})","$1 $2","7(?:[1-5789]|62)",,],["(800)(\\d{4})","$1 $2","800",,],["(845)(46)(4\\d)","$1 $2 $3","845",,],["(8\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","8(?:4[2-5]|7[0-3])",,],["(80\\d)(\\d{3})(\\d{4})","$1 $2 $3","80",,],["([58]00)(\\d{6})","$1 $2","[58]00",,]]]','["GG","00","0",,,"$NP$FG","\\d{6,10}","[135789]\\d{6,9}",]','["IM","00","0",,,"$NP$FG","\\d{6,10}","[135789]\\d{6,9}",]','["JE","00","0",,,"$NP$FG","\\d{6,10}","[135789]\\d{6,9}",]'],
|
||||
"244": '["AO","00",,,,,"\\d{9}","[29]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,,]]]',
|
||||
"211": '["SS","00","0",,,,"\\d{9}","[19]\\d{8}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",,"$NP$FG",]]]',
|
||||
"373": '["MD","00","0",,,"$NP$FG","\\d{8}","[235-9]\\d{7}",[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3","22|3",,],["([25-7]\\d{2})(\\d{2})(\\d{3})","$1 $2 $3","2[13-79]|[5-7]",,],["([89]\\d{2})(\\d{5})","$1 $2","[89]",,]]]',
|
||||
"996": '["KG","00","0",,,"$NP$FG","\\d{5,10}","[235-8]\\d{8,9}",[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3","[25-7]|31[25]",,],["(\\d{4})(\\d{5})","$1 $2","3(?:1[36]|[2-9])",,],["(\\d{3})(\\d{3})(\\d)(\\d{3})","$1 $2 $3 $4","8",,]]]',
|
||||
"93": '["AF","00","0",,,"$NP$FG","\\d{7,9}","[2-7]\\d{8}",[["([2-7]\\d)(\\d{3})(\\d{4})","$1 $2 $3","[2-7]",,]]]',
|
||||
"260": '["ZM","00","0",,,"$NP$FG","\\d{9}","[289]\\d{8}",[["([29]\\d)(\\d{7})","$1 $2","[29]",,],["(800)(\\d{3})(\\d{3})","$1 $2 $3","8",,]]]',
|
||||
"378": '["SM","00",,"(?:0549)?([89]\\d{5})","0549$1",,"\\d{6,10}","[05-7]\\d{7,9}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","[5-7]",,],["(0549)(\\d{6})","$1 $2","0",,"($1) $2"],["(\\d{6})","0549 $1","[89]",,"(0549) $1"]]]',
|
||||
"235": '["TD","00|16",,,,,"\\d{8}","[2679]\\d{7}",[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,,]]]',
|
||||
"960": '["MV","0(?:0|19)",,,,,"\\d{7,10}","[3467]\\d{6}|9(?:00\\d{7}|\\d{6})",[["(\\d{3})(\\d{4})","$1-$2","[3467]|9(?:[1-9]|0[1-9])",,],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3","900",,]]]',
|
||||
"221": '["SN","00",,,,,"\\d{9}","[3789]\\d{8}",[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4","[379]",,],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4","8",,]]]',
|
||||
"595": '["PY","00","0",,,,"\\d{5,9}","5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}",[["(\\d{2})(\\d{5,7})","$1 $2","(?:[26]1|3[289]|4[124678]|7[123]|8[1236])","($FG)",],["(\\d{3})(\\d{3,6})","$1 $2","[2-9]0","$NP$FG",],["(\\d{3})(\\d{6})","$1 $2","9[1-9]","$NP$FG",],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3","8700",,],["(\\d{3})(\\d{4,6})","$1 $2","[2-8][1-9]","($FG)",]]]',
|
||||
"977": '["NP","00","0",,,"$NP$FG","\\d{6,10}","[1-8]\\d{7}|9(?:[1-69]\\d{6,8}|7[2-6]\\d{5,7}|8\\d{8})",[["(1)(\\d{7})","$1-$2","1[2-6]",,],["(\\d{2})(\\d{6})","$1-$2","1[01]|[2-8]|9(?:[1-69]|7[15-9])",,],["(9\\d{2})(\\d{7})","$1-$2","9(?:6[013]|7[245]|8)",,]]]',
|
||||
"36": '["HU","00","06",,,"($FG)","\\d{6,9}","[1-9]\\d{7,8}",[["(1)(\\d{3})(\\d{4})","$1 $2 $3","1",,],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3","[2-9]",,]]]',
|
||||
};
|
|
@ -1,55 +0,0 @@
|
|||
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||
|
||||
// Don't modify this code. Please use:
|
||||
// https://github.com/andreasgal/PhoneNumber.js
|
||||
|
||||
"use strict";
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["PhoneNumberNormalizer"];
|
||||
|
||||
this.PhoneNumberNormalizer = (function() {
|
||||
const UNICODE_DIGITS = /[\uFF10-\uFF19\u0660-\u0669\u06F0-\u06F9]/g;
|
||||
const VALID_ALPHA_PATTERN = /[a-zA-Z]/g;
|
||||
const LEADING_PLUS_CHARS_PATTERN = /^[+\uFF0B]+/g;
|
||||
const NON_DIALABLE_CHARS = /[^,#+\*\d]/g;
|
||||
|
||||
// Map letters to numbers according to the ITU E.161 standard
|
||||
var E161 = {
|
||||
'a': 2, 'b': 2, 'c': 2,
|
||||
'd': 3, 'e': 3, 'f': 3,
|
||||
'g': 4, 'h': 4, 'i': 4,
|
||||
'j': 5, 'k': 5, 'l': 5,
|
||||
'm': 6, 'n': 6, 'o': 6,
|
||||
'p': 7, 'q': 7, 'r': 7, 's': 7,
|
||||
't': 8, 'u': 8, 'v': 8,
|
||||
'w': 9, 'x': 9, 'y': 9, 'z': 9
|
||||
};
|
||||
|
||||
// Normalize a number by converting unicode numbers and symbols to their
|
||||
// ASCII equivalents and removing all non-dialable characters.
|
||||
function NormalizeNumber(number, numbersOnly) {
|
||||
if (typeof number !== 'string') {
|
||||
return '';
|
||||
}
|
||||
|
||||
number = number.replace(UNICODE_DIGITS,
|
||||
function (ch) {
|
||||
return String.fromCharCode(48 + (ch.charCodeAt(0) & 0xf));
|
||||
});
|
||||
if (!numbersOnly) {
|
||||
number = number.replace(VALID_ALPHA_PATTERN,
|
||||
function (ch) {
|
||||
return String(E161[ch.toLowerCase()] || 0);
|
||||
});
|
||||
}
|
||||
number = number.replace(LEADING_PLUS_CHARS_PATTERN, "+");
|
||||
number = number.replace(NON_DIALABLE_CHARS, "");
|
||||
return number;
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
Normalize: NormalizeNumber
|
||||
};
|
||||
})();
|
|
@ -1,99 +0,0 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
const DEBUG = false;
|
||||
function debug(s) { dump("-*- PhoneNumberService.js: " + s + "\n"); }
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cu = Components.utils;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/DOMRequestHelper.jsm");
|
||||
Cu.import("resource://gre/modules/PhoneNumberUtils.jsm");
|
||||
Cu.import("resource://gre/modules/PhoneNumberNormalizer.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "cpmm",
|
||||
"@mozilla.org/childprocessmessagemanager;1",
|
||||
"nsIMessageSender");
|
||||
|
||||
// PhoneNumberService
|
||||
|
||||
function PhoneNumberService()
|
||||
{
|
||||
if (DEBUG) debug("Constructor");
|
||||
}
|
||||
|
||||
PhoneNumberService.prototype = {
|
||||
__proto__: DOMRequestIpcHelper.prototype,
|
||||
|
||||
receiveMessage: function(aMessage) {
|
||||
if (DEBUG) debug("receiveMessage: " + aMessage.name);
|
||||
let msg = aMessage.json;
|
||||
|
||||
let req = this.getRequest(msg.requestID);
|
||||
if (!req) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (aMessage.name) {
|
||||
case "PhoneNumberService:FuzzyMatch:Return:KO":
|
||||
Services.DOMRequest.fireError(req.request, msg.errorMsg);
|
||||
break;
|
||||
case "PhoneNumberService:FuzzyMatch:Return:OK":
|
||||
Services.DOMRequest.fireSuccess(req.request, msg.result);
|
||||
break;
|
||||
default:
|
||||
if (DEBUG) debug("Wrong message: " + aMessage.name);
|
||||
}
|
||||
this.removeRequest(msg.requestID);
|
||||
},
|
||||
|
||||
fuzzyMatch: function(aNumber1, aNumber2) {
|
||||
if (DEBUG) debug("fuzzyMatch: " + aNumber1 + ", " + aNumber2);
|
||||
let request = this.createRequest();
|
||||
|
||||
if ((aNumber1 && !aNumber2) || (aNumber2 && !aNumber1)) {
|
||||
// if only one of the numbers is empty/null/undefined and the other
|
||||
// number is not, we can fire false result in next tick
|
||||
Services.DOMRequest.fireSuccessAsync(request, false);
|
||||
} else if ((aNumber1 === aNumber2) ||
|
||||
(PhoneNumberNormalizer.Normalize(aNumber1) === PhoneNumberNormalizer.Normalize(aNumber2))) {
|
||||
// if we have a simple match fire successful request in next tick
|
||||
Services.DOMRequest.fireSuccessAsync(request, true);
|
||||
} else {
|
||||
// invoke fuzzy matching in the parent
|
||||
let options = { number1: aNumber1, number2: aNumber2 };
|
||||
cpmm.sendAsyncMessage("PhoneNumberService:FuzzyMatch",
|
||||
{requestID: this.getRequestId({request: request}),
|
||||
options: options});
|
||||
}
|
||||
|
||||
return request;
|
||||
},
|
||||
|
||||
normalize: function(aNumber) {
|
||||
if (DEBUG) debug("normalize: " + aNumber);
|
||||
return PhoneNumberNormalizer.Normalize(aNumber);
|
||||
},
|
||||
|
||||
init: function(aWindow) {
|
||||
if (DEBUG) debug("init call");
|
||||
this.initDOMRequestHelper(aWindow, [
|
||||
"PhoneNumberService:FuzzyMatch:Return:OK",
|
||||
"PhoneNumberService:FuzzyMatch:Return:KO"
|
||||
]);
|
||||
},
|
||||
|
||||
classID : Components.ID("{e2768710-eb17-11e2-91e2-0800200c9a66}"),
|
||||
contractID : "@mozilla.org/phoneNumberService;1",
|
||||
QueryInterface : XPCOMUtils.generateQI([Ci.nsIDOMGlobalPropertyInitializer,
|
||||
Ci.nsISupportsWeakReference,
|
||||
Ci.nsIObserver]),
|
||||
}
|
||||
|
||||
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([PhoneNumberService]);
|
|
@ -1,2 +0,0 @@
|
|||
component {e2768710-eb17-11e2-91e2-0800200c9a66} PhoneNumberService.js
|
||||
contract @mozilla.org/phoneNumberService;1 {e2768710-eb17-11e2-91e2-0800200c9a66}
|
|
@ -1,236 +0,0 @@
|
|||
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||
|
||||
"use strict";
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["PhoneNumberUtils"];
|
||||
|
||||
const DEBUG = false;
|
||||
function debug(s) { if(DEBUG) dump("-*- PhoneNumberutils: " + s + "\n"); }
|
||||
|
||||
const Cu = Components.utils;
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PhoneNumberNormalizer",
|
||||
"resource://gre/modules/PhoneNumberNormalizer.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "MCC_ISO3166_TABLE",
|
||||
"resource://gre/modules/mcc_iso3166_table.jsm");
|
||||
|
||||
#ifdef MOZ_B2G_RIL
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "mobileConnection",
|
||||
"@mozilla.org/mobileconnection/mobileconnectionservice;1",
|
||||
"nsIMobileConnectionService");
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "gIccService",
|
||||
"@mozilla.org/icc/iccservice;1",
|
||||
"nsIIccService");
|
||||
#endif
|
||||
|
||||
this.PhoneNumberUtils = {
|
||||
|
||||
initParent: function() {
|
||||
ppmm.addMessageListener(["PhoneNumberService:FuzzyMatch"], this);
|
||||
this._countryNameCache = Object.create(null);
|
||||
},
|
||||
|
||||
initChild: function () {
|
||||
this._countryNameCache = Object.create(null);
|
||||
},
|
||||
// 1. See whether we have a network mcc
|
||||
// 2. If we don't have that, look for the simcard mcc
|
||||
// 3. If we don't have that or its 0 (not activated), pick up the last used mcc
|
||||
// 4. If we don't have, default to some mcc
|
||||
|
||||
// mcc for Brasil
|
||||
_mcc: '724',
|
||||
|
||||
getCountryName: function getCountryName() {
|
||||
let mcc;
|
||||
let countryName;
|
||||
|
||||
#ifdef MOZ_B2G_RIL
|
||||
// TODO: Bug 926740 - PhoneNumberUtils for multisim
|
||||
// In Multi-sim, there is more than one client in
|
||||
// iccService/mobileConnectionService. Each client represents a
|
||||
// icc/mobileConnection service. To maintain the backward compatibility with
|
||||
// single sim, we always use client 0 for now. Adding support for multiple
|
||||
// sim will be addressed in bug 926740, if needed.
|
||||
let clientId = 0;
|
||||
|
||||
// Get network mcc
|
||||
let connection = mobileConnection.getItemByServiceId(clientId);
|
||||
let voice = connection && connection.voice;
|
||||
if (voice && voice.network && voice.network.mcc) {
|
||||
mcc = voice.network.mcc;
|
||||
}
|
||||
|
||||
// Get SIM mcc
|
||||
let icc = gIccService.getIccByServiceId(clientId);
|
||||
let iccInfo = icc && icc.iccInfo;
|
||||
if (!mcc && iccInfo && iccInfo.mcc) {
|
||||
mcc = iccInfo.mcc;
|
||||
}
|
||||
|
||||
// Attempt to grab last known sim mcc from prefs
|
||||
if (!mcc) {
|
||||
try {
|
||||
mcc = Services.prefs.getCharPref("ril.lastKnownSimMcc");
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
// Set to default mcc
|
||||
if (!mcc) {
|
||||
mcc = this._mcc;
|
||||
}
|
||||
#else
|
||||
|
||||
// Attempt to grab last known sim mcc from prefs
|
||||
if (!mcc) {
|
||||
try {
|
||||
mcc = Services.prefs.getCharPref("ril.lastKnownSimMcc");
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
if (!mcc) {
|
||||
mcc = this._mcc;
|
||||
}
|
||||
#endif
|
||||
|
||||
countryName = MCC_ISO3166_TABLE[mcc];
|
||||
if (DEBUG) debug("MCC: " + mcc + "countryName: " + countryName);
|
||||
return countryName;
|
||||
},
|
||||
|
||||
parse: function(aNumber) {
|
||||
if (DEBUG) debug("call parse: " + aNumber);
|
||||
let result = PhoneNumber.Parse(aNumber, this.getCountryName());
|
||||
|
||||
if (result) {
|
||||
let countryName = result.countryName || this.getCountryName();
|
||||
let number = null;
|
||||
if (countryName) {
|
||||
if (Services.prefs.getPrefType("dom.phonenumber.substringmatching." + countryName) == Ci.nsIPrefBranch.PREF_INT) {
|
||||
let val = Services.prefs.getIntPref("dom.phonenumber.substringmatching." + countryName);
|
||||
if (val) {
|
||||
number = result.internationalNumber || result.nationalNumber;
|
||||
if (number && number.length > val) {
|
||||
number = number.slice(-val);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Object.defineProperty(result, "nationalMatchingFormat", { value: number, enumerable: true });
|
||||
if (DEBUG) {
|
||||
debug("InternationalFormat: " + result.internationalFormat);
|
||||
debug("InternationalNumber: " + result.internationalNumber);
|
||||
debug("NationalNumber: " + result.nationalNumber);
|
||||
debug("NationalFormat: " + result.nationalFormat);
|
||||
debug("CountryName: " + result.countryName);
|
||||
debug("NationalMatchingFormat: " + result.nationalMatchingFormat);
|
||||
}
|
||||
} else if (DEBUG) {
|
||||
debug("NO PARSING RESULT!");
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
parseWithMCC: function(aNumber, aMCC) {
|
||||
if (DEBUG) debug("parseWithMCC " + aNumber + ", " + aMCC);
|
||||
let countryName = MCC_ISO3166_TABLE[aMCC];
|
||||
if (DEBUG) debug("found country name: " + countryName);
|
||||
return PhoneNumber.Parse(aNumber, countryName);
|
||||
},
|
||||
|
||||
parseWithCountryName: function(aNumber, aCountryName) {
|
||||
if (this._countryNameCache[aCountryName]) {
|
||||
return PhoneNumber.Parse(aNumber, aCountryName);
|
||||
}
|
||||
|
||||
if (Object.keys(this._countryNameCache).length === 0) {
|
||||
// populate the cache
|
||||
let keys = Object.keys(MCC_ISO3166_TABLE);
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
this._countryNameCache[MCC_ISO3166_TABLE[keys[i]]] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!this._countryNameCache[aCountryName]) {
|
||||
dump("Couldn't find country name: " + aCountryName + "\n");
|
||||
return null;
|
||||
}
|
||||
|
||||
return PhoneNumber.Parse(aNumber, aCountryName);
|
||||
},
|
||||
|
||||
isPlainPhoneNumber: function isPlainPhoneNumber(aNumber) {
|
||||
var isPlain = PhoneNumber.IsPlain(aNumber);
|
||||
if (DEBUG) debug("isPlain(" + aNumber + ") " + isPlain);
|
||||
return isPlain;
|
||||
},
|
||||
|
||||
normalize: function Normalize(aNumber, aNumbersOnly) {
|
||||
let normalized = PhoneNumberNormalizer.Normalize(aNumber, aNumbersOnly);
|
||||
if (DEBUG) debug("normalize(" + aNumber + "): " + normalized + ", " + aNumbersOnly);
|
||||
return normalized;
|
||||
},
|
||||
|
||||
fuzzyMatch: function fuzzyMatch(aNumber1, aNumber2) {
|
||||
let normalized1 = this.normalize(aNumber1);
|
||||
let normalized2 = this.normalize(aNumber2);
|
||||
if (DEBUG) debug("Normalized Number1: " + normalized1 + ", Number2: " + normalized2);
|
||||
if (normalized1 === normalized2) {
|
||||
return true;
|
||||
}
|
||||
let parsed1 = this.parse(aNumber1);
|
||||
let parsed2 = this.parse(aNumber2);
|
||||
if (parsed1 && parsed2) {
|
||||
if ((parsed1.internationalNumber && parsed1.internationalNumber === parsed2.internationalNumber)
|
||||
|| (parsed1.nationalNumber && parsed1.nationalNumber === parsed2.nationalNumber)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
let countryName = this.getCountryName();
|
||||
let ssPref = "dom.phonenumber.substringmatching." + countryName;
|
||||
if (Services.prefs.getPrefType(ssPref) == Ci.nsIPrefBranch.PREF_INT) {
|
||||
let val = Services.prefs.getIntPref(ssPref);
|
||||
if (normalized1.length > val && normalized2.length > val
|
||||
&& normalized1.slice(-val) === normalized2.slice(-val)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
receiveMessage: function(aMessage) {
|
||||
if (DEBUG) debug("receiveMessage " + aMessage.name);
|
||||
let mm = aMessage.target;
|
||||
let msg = aMessage.data;
|
||||
|
||||
switch (aMessage.name) {
|
||||
case "PhoneNumberService:FuzzyMatch":
|
||||
mm.sendAsyncMessage("PhoneNumberService:FuzzyMatch:Return:OK", {
|
||||
requestID: msg.requestID,
|
||||
result: this.fuzzyMatch(msg.options.number1, msg.options.number2)
|
||||
});
|
||||
break;
|
||||
default:
|
||||
if (DEBUG) debug("WRONG MESSAGE NAME: " + aMessage.name);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var inParent = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime)
|
||||
.processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;
|
||||
if (inParent) {
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PhoneNumber",
|
||||
"resource://gre/modules/PhoneNumber.jsm");
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "ppmm",
|
||||
"@mozilla.org/parentprocessmessagemanager;1",
|
||||
"nsIMessageListenerManager");
|
||||
PhoneNumberUtils.initParent();
|
||||
} else {
|
||||
PhoneNumberUtils.initChild();
|
||||
}
|
||||
|
|
@ -1,244 +0,0 @@
|
|||
// MCC(Mobile Country Codes) and country name(ISO3166-1) mapping table.
|
||||
// Reference Data from:
|
||||
// http://en.wikipedia.org/wiki/List_of_mobile_country_codes
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["MCC_ISO3166_TABLE"];
|
||||
|
||||
this.MCC_ISO3166_TABLE = {
|
||||
412:'AF',
|
||||
276:'AL',
|
||||
603:'DZ',
|
||||
544:'AS',
|
||||
213:'AD',
|
||||
631:'AO',
|
||||
365:'AI',
|
||||
344:'AG',
|
||||
722:'AR',
|
||||
283:'AM',
|
||||
363:'AW',
|
||||
505:'AU',
|
||||
232:'AT',
|
||||
400:'AZ',
|
||||
364:'BS',
|
||||
426:'BH',
|
||||
470:'BD',
|
||||
342:'BB',
|
||||
257:'BY',
|
||||
206:'BE',
|
||||
702:'BZ',
|
||||
616:'BJ',
|
||||
350:'BM',
|
||||
402:'BT',
|
||||
736:'BO',
|
||||
218:'BA',
|
||||
652:'BW',
|
||||
724:'BR',
|
||||
348:'VG',
|
||||
528:'BN',
|
||||
284:'BG',
|
||||
613:'BF',
|
||||
642:'BI',
|
||||
456:'KH',
|
||||
624:'CM',
|
||||
302:'CA',
|
||||
625:'CV',
|
||||
346:'KY',
|
||||
623:'CF',
|
||||
622:'TD',
|
||||
730:'CL',
|
||||
460:'CN',
|
||||
461:'CN',
|
||||
732:'CO',
|
||||
654:'KM',
|
||||
629:'CG',
|
||||
548:'CK',
|
||||
712:'CR',
|
||||
612:'CI',
|
||||
219:'HR',
|
||||
368:'CU',
|
||||
362:'CW',
|
||||
280:'CY',
|
||||
230:'CZ',
|
||||
630:'CD',
|
||||
238:'DK',
|
||||
638:'DJ',
|
||||
366:'DM',
|
||||
370:'DO',
|
||||
514:'TL',
|
||||
740:'EC',
|
||||
602:'EG',
|
||||
706:'SV',
|
||||
627:'GQ',
|
||||
657:'ER',
|
||||
248:'EE',
|
||||
636:'ET',
|
||||
750:'FK',
|
||||
288:'FO',
|
||||
542:'FJ',
|
||||
244:'FI',
|
||||
208:'FR',
|
||||
742:'GF',
|
||||
547:'PF',
|
||||
628:'GA',
|
||||
607:'GM',
|
||||
282:'GE',
|
||||
262:'DE',
|
||||
620:'GH',
|
||||
266:'GI',
|
||||
202:'GR',
|
||||
290:'GL',
|
||||
352:'GD',
|
||||
340:'GP',
|
||||
535:'GU',
|
||||
704:'GT',
|
||||
611:'GN',
|
||||
632:'GW',
|
||||
738:'GY',
|
||||
372:'HT',
|
||||
708:'HN',
|
||||
454:'HK',
|
||||
216:'HU',
|
||||
274:'IS',
|
||||
404:'IN',
|
||||
405:'IN',
|
||||
406:'IN',
|
||||
510:'ID',
|
||||
432:'IR',
|
||||
418:'IQ',
|
||||
272:'IE',
|
||||
425:'IL',
|
||||
222:'IT',
|
||||
338:'JM',
|
||||
441:'JP',
|
||||
440:'JP',
|
||||
416:'JO',
|
||||
401:'KZ',
|
||||
639:'KE',
|
||||
545:'KI',
|
||||
467:'KP',
|
||||
450:'KR',
|
||||
419:'KW',
|
||||
437:'KG',
|
||||
457:'LA',
|
||||
247:'LV',
|
||||
415:'LB',
|
||||
651:'LS',
|
||||
618:'LR',
|
||||
606:'LY',
|
||||
295:'LI',
|
||||
246:'LT',
|
||||
270:'LU',
|
||||
455:'MO',
|
||||
294:'MK',
|
||||
646:'MG',
|
||||
650:'MW',
|
||||
502:'MY',
|
||||
472:'MV',
|
||||
610:'ML',
|
||||
278:'MT',
|
||||
551:'MH',
|
||||
340:'MQ',
|
||||
609:'MR',
|
||||
617:'MU',
|
||||
334:'MX',
|
||||
550:'FM',
|
||||
259:'MD',
|
||||
212:'MC',
|
||||
428:'MN',
|
||||
297:'ME',
|
||||
354:'MS',
|
||||
604:'MA',
|
||||
643:'MZ',
|
||||
414:'MM',
|
||||
649:'NA',
|
||||
536:'NR',
|
||||
429:'NP',
|
||||
204:'NL',
|
||||
546:'NC',
|
||||
530:'NZ',
|
||||
710:'NI',
|
||||
614:'NE',
|
||||
621:'NG',
|
||||
555:'NU',
|
||||
534:'MP',
|
||||
242:'NO',
|
||||
422:'OM',
|
||||
410:'PK',
|
||||
552:'PW',
|
||||
425:'PS',
|
||||
714:'PA',
|
||||
537:'PG',
|
||||
744:'PY',
|
||||
716:'PE',
|
||||
515:'PH',
|
||||
260:'PL',
|
||||
268:'PT',
|
||||
330:'PR',
|
||||
427:'QA',
|
||||
647:'RE',
|
||||
226:'RO',
|
||||
250:'RU',
|
||||
635:'RW',
|
||||
356:'KN',
|
||||
358:'LC',
|
||||
308:'PM',
|
||||
360:'VC',
|
||||
549:'WS',
|
||||
292:'SM',
|
||||
626:'ST',
|
||||
420:'SA',
|
||||
608:'SN',
|
||||
220:'RS',
|
||||
633:'SC',
|
||||
619:'SL',
|
||||
525:'SG',
|
||||
231:'SK',
|
||||
293:'SI',
|
||||
540:'SB',
|
||||
637:'SO',
|
||||
655:'ZA',
|
||||
214:'ES',
|
||||
413:'LK',
|
||||
634:'SD',
|
||||
746:'SR',
|
||||
653:'SZ',
|
||||
240:'SE',
|
||||
228:'CH',
|
||||
417:'SY',
|
||||
466:'TW',
|
||||
436:'TJ',
|
||||
640:'TZ',
|
||||
520:'TH',
|
||||
615:'TG',
|
||||
539:'TO',
|
||||
374:'TT',
|
||||
605:'TN',
|
||||
286:'TR',
|
||||
438:'TM',
|
||||
376:'TC',
|
||||
641:'UG',
|
||||
255:'UA',
|
||||
424:'AE',
|
||||
430:'AE',
|
||||
431:'AE',
|
||||
235:'GB',
|
||||
234:'GB',
|
||||
310:'US',
|
||||
311:'US',
|
||||
312:'US',
|
||||
313:'US',
|
||||
314:'US',
|
||||
315:'US',
|
||||
316:'US',
|
||||
332:'VI',
|
||||
748:'UY',
|
||||
434:'UZ',
|
||||
541:'VU',
|
||||
225:'VA',
|
||||
734:'VE',
|
||||
452:'VN',
|
||||
543:'WF',
|
||||
421:'YE',
|
||||
645:'ZM',
|
||||
648:'ZW'
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
EXTRA_COMPONENTS += [
|
||||
'PhoneNumberService.js',
|
||||
'PhoneNumberService.manifest',
|
||||
]
|
||||
|
||||
EXTRA_JS_MODULES += [
|
||||
'mcc_iso3166_table.jsm',
|
||||
'PhoneNumber.jsm',
|
||||
'PhoneNumberMetaData.jsm',
|
||||
'PhoneNumberNormalizer.jsm',
|
||||
]
|
||||
|
||||
EXTRA_PP_JS_MODULES += [
|
||||
'PhoneNumberUtils.jsm',
|
||||
]
|
||||
|
||||
MOCHITEST_MANIFESTS += ['tests/mochitest.ini']
|
||||
MOCHITEST_CHROME_MANIFESTS += ['tests/chrome.ini']
|
|
@ -1,6 +0,0 @@
|
|||
[DEFAULT]
|
||||
skip-if = buildapp == 'b2g'
|
||||
|
||||
[test_phonenumber.xul]
|
||||
[test_phonenumberservice.xul]
|
||||
[test_phonenumberutils.xul]
|
|
@ -1 +0,0 @@
|
|||
[test_phonenumberutils_basics.html]
|
|
@ -1,366 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!-- Any copyright is dedicated to the Public Domain.
|
||||
- http://creativecommons.org/publicdomain/zero/1.0/ -->
|
||||
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
||||
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="Mozilla Bug 781379">
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript" src="head.js"/>
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
|
||||
target="_blank">Mozilla Bug 809213</a>
|
||||
</body>
|
||||
|
||||
<script type="application/javascript;version=1.8">
|
||||
|
||||
"use strict";
|
||||
|
||||
Components.utils.import("resource://gre/modules/PhoneNumber.jsm");
|
||||
Components.utils.import("resource://gre/modules/PhoneNumberNormalizer.jsm");
|
||||
|
||||
function IsPlain(dial, expected) {
|
||||
var result = PhoneNumber.IsPlain(dial);
|
||||
if (result != expected) {
|
||||
ok(false, dial + " is " + (result ? "" : "not ") + "plain, expects otherwise.");
|
||||
} else {
|
||||
ok(true, dial + " is " + (result ? "" : "not ") + "plain as expected.");
|
||||
}
|
||||
}
|
||||
|
||||
function Normalize(dial, expected) {
|
||||
var result = PhoneNumberNormalizer.Normalize(dial);
|
||||
if (result !== expected) {
|
||||
ok(false, "normalized " + dial + " to " + result + ", expected " + expected + " instead.");
|
||||
} else {
|
||||
ok(true, "normalized " + dial + " to " + result + " as expected.");
|
||||
}
|
||||
}
|
||||
|
||||
function Normalize(dial, expected) {
|
||||
var result = PhoneNumberNormalizer.Normalize(dial);
|
||||
if (result != expected) {
|
||||
ok(false, "Normalize error!\n");
|
||||
print("expected: " + expected);
|
||||
print("got: " + result);
|
||||
} else {
|
||||
ok(true, "Normalization OK");
|
||||
}
|
||||
}
|
||||
|
||||
function CantParse(dial, currentRegion) {
|
||||
var result = PhoneNumber.Parse(dial, currentRegion);
|
||||
if (result) {
|
||||
ok(false, "Shouldn't parse!\n");
|
||||
print("expected: does not parse");
|
||||
print("got: " + dial + " " + currentRegion);
|
||||
}
|
||||
}
|
||||
|
||||
function Parse(dial, currentRegion) {
|
||||
dump("try: " + dial + ", " + currentRegion + "\n");
|
||||
var result = PhoneNumber.Parse(dial, currentRegion);
|
||||
if (!result) {
|
||||
ok(false, "got: " + dial + " " + currentRegion);
|
||||
} else {
|
||||
ok(true, "Parses!\n");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function ParseWithIntl(dial, currentRegion) {
|
||||
var result = PhoneNumber.Parse(dial, currentRegion);
|
||||
if (!result) {
|
||||
ok(false, "got: " + dial + " " + currentRegion);
|
||||
} else {
|
||||
ok(result.internationalNumber, "Has International!");
|
||||
ok(true, "Parses!\n");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function Test(dial, currentRegion, nationalNumber, region) {
|
||||
var result = Parse(dial, currentRegion);
|
||||
if (result.region != region || result.nationalNumber != nationalNumber) {
|
||||
ok(false, "expected: " + nationalNumber + " " + region + "got: " + result.nationalNumber + " " + result.region);
|
||||
} else {
|
||||
ok(true, "Test ok!");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function Format(dial, currentRegion, nationalNumber, region, nationalFormat, internationalFormat) {
|
||||
var result = Test(dial, currentRegion, nationalNumber, region);
|
||||
if (result.nationalFormat != nationalFormat ||
|
||||
result.internationalFormat != internationalFormat) {
|
||||
ok(false, "expected: " + nationalFormat + " " + internationalFormat +
|
||||
"got: " + result.nationalFormat + " " + result.internationalFormat);
|
||||
}
|
||||
}
|
||||
|
||||
function TestProperties(dial, currentRegion) {
|
||||
var result = PhoneNumber.Parse(dial, currentRegion);
|
||||
if (result) {
|
||||
ok(true, "found it");
|
||||
ok(true, "InternationalFormat: " + result.internationalFormat);
|
||||
ok(true, "InternationalNumber: " + result.internationalNumber);
|
||||
ok(true, "NationalNumber: " + result.nationalNumber);
|
||||
ok(true, "NationalFormat: " + result.nationalFormat);
|
||||
} else {
|
||||
ok(true, "not found");
|
||||
}
|
||||
}
|
||||
|
||||
function TestPropertiesWithExpectedCountry(dial, currentRegion, expectedRegion) {
|
||||
var result = PhoneNumber.Parse(dial, currentRegion);
|
||||
if (result) {
|
||||
ok(true, "found it");
|
||||
ok(true, "InternationalFormat: " + result.internationalFormat);
|
||||
ok(true, "InternationalNumber: " + result.internationalNumber);
|
||||
ok(true, "NationalNumber: " + result.nationalNumber);
|
||||
ok(true, "NationalFormat: " + result.nationalFormat);
|
||||
ok(true, "CountryName: " + result.countryName);
|
||||
is(result.countryName, expectedRegion, "Same region");
|
||||
} else {
|
||||
ok(true, "not found");
|
||||
}
|
||||
}
|
||||
|
||||
function AllEqual(list, currentRegion) {
|
||||
var first = PhoneNumber.Parse(list.shift(), currentRegion);
|
||||
ok(!!first, "first parses");
|
||||
for (var index in list) {
|
||||
var other = PhoneNumber.Parse(list[index], currentRegion);
|
||||
ok(!!other, "other parses");
|
||||
ok(first.internationalNumber == other.internationalNumber, "first and other match");
|
||||
}
|
||||
}
|
||||
|
||||
TestProperties("+0988782456");
|
||||
TestProperties("+33442020", "ES");
|
||||
TestProperties("+43987614", "ES");
|
||||
TestProperties("+0988782456");
|
||||
TestProperties("+34556657");
|
||||
TestProperties("+66554433");
|
||||
TestProperties("+43442075");
|
||||
TestProperties("+13442074");
|
||||
|
||||
TestPropertiesWithExpectedCountry("+4333822222", "DE", "AT");
|
||||
TestPropertiesWithExpectedCountry("+19491234567", "DE", "US");
|
||||
|
||||
// Test whether could a string be a phone number.
|
||||
IsPlain(null, false);
|
||||
IsPlain("", false);
|
||||
IsPlain("1", true);
|
||||
IsPlain("*2", true); // Real number used in Venezuela
|
||||
IsPlain("*8", true); // Real number used in Venezuela
|
||||
IsPlain("12", true);
|
||||
IsPlain("123", true);
|
||||
IsPlain("1a2", false);
|
||||
IsPlain("12a", false);
|
||||
IsPlain("1234", true);
|
||||
IsPlain("123a", false);
|
||||
IsPlain("+", true);
|
||||
IsPlain("+1", true);
|
||||
IsPlain("+12", true);
|
||||
IsPlain("+123", true);
|
||||
IsPlain("()123", false);
|
||||
IsPlain("(1)23", false);
|
||||
IsPlain("(12)3", false);
|
||||
IsPlain("(123)", false);
|
||||
IsPlain("(123)4", false);
|
||||
IsPlain("123;ext=", false);
|
||||
IsPlain("123;ext=1", false);
|
||||
IsPlain("123;ext=1234567", false);
|
||||
IsPlain("123;ext=12345678", false);
|
||||
IsPlain("123 ext:1", false);
|
||||
IsPlain("123 ext:1#", false);
|
||||
IsPlain("123-1#", false);
|
||||
IsPlain("123 1#", false);
|
||||
IsPlain("123 12345#", false);
|
||||
IsPlain("123 +123456#", false);
|
||||
IsPlain("#123#", true);
|
||||
IsPlain("*#004#", true);
|
||||
IsPlain("*30#", true);
|
||||
IsPlain("*#06#", true);
|
||||
IsPlain("123456789012345678901234567890123456789012345678901", false); // more than 50 characters
|
||||
|
||||
// test normalization
|
||||
Normalize(null, "");
|
||||
Normalize("", "");
|
||||
Normalize("1", "1");
|
||||
Normalize("*2", "*2"); // Real number used in Venezuela
|
||||
Normalize("*8", "*8"); // Real number used in Venezuela
|
||||
Normalize("12", "12");
|
||||
Normalize("123", "123");
|
||||
Normalize("1a2", "122");
|
||||
Normalize("12a", "122");
|
||||
Normalize("1234", "1234");
|
||||
Normalize("123a", "1232");
|
||||
Normalize("+", "+");
|
||||
Normalize("+1", "+1");
|
||||
Normalize("+12", "+12");
|
||||
Normalize("+123", "+123");
|
||||
Normalize("()123", "123");
|
||||
Normalize("(1)23", "123");
|
||||
Normalize("(12)3", "123");
|
||||
Normalize("(123)", "123");
|
||||
Normalize("(123)4", "1234");
|
||||
Normalize("123-1#", "1231#");
|
||||
Normalize("123 1#", "1231#");
|
||||
Normalize("123 12345#", "12312345#");
|
||||
Normalize("123 +123456#", "123+123456#");
|
||||
Normalize("#123#", "#123#");
|
||||
Normalize("*#004#", "*#004#");
|
||||
Normalize("*30#", "*30#");
|
||||
Normalize("*#06#", "*#06#");
|
||||
|
||||
// Test parsing national numbers.
|
||||
Parse("033316005", "NZ");
|
||||
Parse("03-331 6005", "NZ");
|
||||
Parse("03 331 6005", "NZ");
|
||||
|
||||
// Always test CA before US because CA has to load all meta-info for US.
|
||||
ParseWithIntl("4031234567", "CA");
|
||||
Parse("(416) 585-4319", "CA");
|
||||
Parse("647-967-4357", "CA");
|
||||
Parse("416-716-8768", "CA");
|
||||
Parse("18002684646", "CA");
|
||||
Parse("416-445-9119", "CA");
|
||||
Parse("1-800-668-6866", "CA");
|
||||
Parse("(416) 453-6486", "CA");
|
||||
Parse("(647) 268-4778", "CA");
|
||||
Parse("647-218-1313", "CA");
|
||||
Parse("+1 647-209-4642", "CA");
|
||||
Parse("416-559-0133", "CA");
|
||||
Parse("+1 647-639-4118", "CA");
|
||||
Parse("+12898803664", "CA");
|
||||
Parse("780-901-4687", "CA");
|
||||
Parse("+14167070550", "CA");
|
||||
Parse("+1-647-522-6487", "CA");
|
||||
Parse("(416) 877-0880", "CA");
|
||||
|
||||
// Testing international prefixes.
|
||||
// Should strip country code.
|
||||
Parse("0064 3 331 6005", "NZ");
|
||||
// Try again, but this time we have an international number with region rode US. It should
|
||||
// recognize the country code and parse accordingly.
|
||||
Parse("01164 3 331 6005", "US");
|
||||
Parse("+64 3 331 6005", "US");
|
||||
Parse("64(0)64123456", "NZ");
|
||||
// Check that using a "/" is fine in a phone number.
|
||||
Parse("123/45678", "DE");
|
||||
Parse("123-456-7890", "US");
|
||||
|
||||
// Test parsing international numbers.
|
||||
Parse("+1 (650) 333-6000", "NZ");
|
||||
Parse("1-650-333-6000", "US");
|
||||
// Calling the US number from Singapore by using different service providers
|
||||
// 1st test: calling using SingTel IDD service (IDD is 001)
|
||||
Parse("0011-650-333-6000", "SG");
|
||||
// 2nd test: calling using StarHub IDD service (IDD is 008)
|
||||
Parse("0081-650-333-6000", "SG");
|
||||
// 3rd test: calling using SingTel V019 service (IDD is 019)
|
||||
Parse("0191-650-333-6000", "SG");
|
||||
// Calling the US number from Poland
|
||||
Parse("0~01-650-333-6000", "PL");
|
||||
// Using "++" at the start.
|
||||
Parse("++1 (650) 333-6000", "PL");
|
||||
// Using a full-width plus sign.
|
||||
Parse("\uFF0B1 (650) 333-6000", "SG");
|
||||
// The whole number, including punctuation, is here represented in full-width form.
|
||||
Parse("\uFF0B\uFF11\u3000\uFF08\uFF16\uFF15\uFF10\uFF09" +
|
||||
"\u3000\uFF13\uFF13\uFF13\uFF0D\uFF16\uFF10\uFF10\uFF10",
|
||||
"SG");
|
||||
|
||||
// Test parsing with leading zeros.
|
||||
Parse("+39 02-36618 300", "NZ");
|
||||
Parse("02-36618 300", "IT");
|
||||
Parse("312 345 678", "IT");
|
||||
|
||||
// Test parsing numbers in Argentina.
|
||||
Parse("+54 9 343 555 1212", "AR");
|
||||
Parse("0343 15 555 1212", "AR");
|
||||
Parse("+54 9 3715 65 4320", "AR");
|
||||
Parse("03715 15 65 4320", "AR");
|
||||
Parse("+54 11 3797 0000", "AR");
|
||||
Parse("011 3797 0000", "AR");
|
||||
Parse("+54 3715 65 4321", "AR");
|
||||
Parse("03715 65 4321", "AR");
|
||||
Parse("+54 23 1234 0000", "AR");
|
||||
Parse("023 1234 0000", "AR");
|
||||
|
||||
// Test numbers in Mexico
|
||||
Parse("+52 (449)978-0001", "MX");
|
||||
Parse("01 (449)978-0001", "MX");
|
||||
Parse("(449)978-0001", "MX");
|
||||
Parse("+52 1 33 1234-5678", "MX");
|
||||
Parse("044 (33) 1234-5678", "MX");
|
||||
Parse("045 33 1234-5678", "MX");
|
||||
|
||||
// Test that lots of spaces are ok.
|
||||
Parse("0 3 3 3 1 6 0 0 5", "NZ");
|
||||
|
||||
// Test omitting the current region. This is only valid when the number starts
|
||||
// with a '+'.
|
||||
Parse("+64 3 331 6005");
|
||||
Parse("+64 3 331 6005", null);
|
||||
|
||||
// US numbers
|
||||
Format("19497261234", "US", "9497261234", "US", "(949) 726-1234", "+1 949-726-1234");
|
||||
|
||||
// Try a couple german numbers from the US with various access codes.
|
||||
Format("49451491934", "US", "451491934", "DE", "0451 491934", "+49 451 491934");
|
||||
Format("+49451491934", "US", "451491934", "DE", "0451 491934", "+49 451 491934");
|
||||
Format("01149451491934", "US", "451491934", "DE", "0451 491934", "+49 451 491934");
|
||||
|
||||
// Now try dialing the same number from within the German region.
|
||||
Format("451491934", "DE", "451491934", "DE", "0451 491934", "+49 451 491934");
|
||||
Format("0451491934", "DE", "451491934", "DE", "0451 491934", "+49 451 491934");
|
||||
|
||||
// Numbers in italy keep the leading 0 in the city code when dialing internationally.
|
||||
Format("0577-555-555", "IT", "0577555555", "IT", "05 7755 5555", "+39 05 7755 5555");
|
||||
|
||||
// Telefonica tests
|
||||
Format("612123123", "ES", "612123123", "ES", "612 12 31 23", "+34 612 12 31 23");
|
||||
|
||||
// Chile mobile number from a landline
|
||||
Format("0997654321", "CL", "997654321", "CL", "(99) 765 4321", "+56 99 765 4321");
|
||||
|
||||
// Chile mobile number from another mobile number
|
||||
Format("997654321", "CL", "997654321", "CL", "(99) 765 4321", "+56 99 765 4321");
|
||||
|
||||
// Colombian international number without the leading "+"
|
||||
Format("5712234567", "CO", "12234567", "CO", "(1) 2234567", "+57 1 2234567");
|
||||
|
||||
// Dialing 911 in the US. This is not a national number.
|
||||
CantParse("911", "US");
|
||||
|
||||
// China mobile number with a 0 in it
|
||||
Format("15955042864", "CN", "15955042864", "CN", "0159 5504 2864", "+86 159 5504 2864");
|
||||
|
||||
// Testing international region numbers.
|
||||
CantParse("883510000000091", "001");
|
||||
Format("+883510000000092", "001", "510000000092", "001", "510 000 000 092", "+883 510 000 000 092");
|
||||
Format("883510000000093", "FR", "510000000093", "001", "510 000 000 093", "+883 510 000 000 093");
|
||||
Format("+883510000000094", "FR", "510000000094", "001", "510 000 000 094", "+883 510 000 000 094");
|
||||
Format("883510000000095", "US", "510000000095", "001", "510 000 000 095", "+883 510 000 000 095");
|
||||
Format("+883510000000096", "US", "510000000096", "001", "510 000 000 096", "+883 510 000 000 096");
|
||||
CantParse("979510000012", "001");
|
||||
Format("+979510000012", "001", "510000012", "001", "5 1000 0012", "+979 5 1000 0012");
|
||||
|
||||
// Test normalizing numbers. Only 0-9,#* are valid in a phone number.
|
||||
Normalize("+ABC # * , 9 _ 1 _0", "+222#*,910");
|
||||
Normalize("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "22233344455566677778889999");
|
||||
Normalize("abcdefghijklmnopqrstuvwxyz", "22233344455566677778889999");
|
||||
|
||||
// 8 and 9 digit numbers with area code in Brazil with collect call prefix (90)
|
||||
AllEqual(["01187654321","0411187654321","551187654321","90411187654321","+551187654321"],"BR");
|
||||
AllEqual(["011987654321","04111987654321","5511987654321","904111987654321","+5511987654321"],"BR");
|
||||
|
||||
</script>
|
||||
</window>
|
|
@ -1,158 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!-- Any copyright is dedicated to the Public Domain.
|
||||
- http://creativecommons.org/publicdomain/zero/1.0/ -->
|
||||
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
||||
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="Mozilla Bug 781379">
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
|
||||
target="_blank">Mozilla Bug 809213</a>
|
||||
</body>
|
||||
|
||||
<script type="application/javascript;version=1.8">
|
||||
|
||||
"use strict";
|
||||
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
Services.prefs.setIntPref("dom.phonenumber.substringmatching.BR", 8);
|
||||
Services.prefs.setCharPref("ril.lastKnownSimMcc", "724");
|
||||
|
||||
var pm = SpecialPowers.Cc["@mozilla.org/permissionmanager;1"]
|
||||
.getService(SpecialPowers.Ci.nsIPermissionManager);
|
||||
|
||||
pm.addFromPrincipal(window.document.nodePrincipal, "phonenumberservice",
|
||||
SpecialPowers.Ci.nsIPermissionManager.ALLOW_ACTION);
|
||||
|
||||
function onUnwantedSuccess() {
|
||||
ok(false, "onUnwantedSuccess: shouldn't get here");
|
||||
}
|
||||
|
||||
function onFailure() {
|
||||
ok(false, "in on Failure!");
|
||||
}
|
||||
|
||||
var req;
|
||||
var index = 0;
|
||||
var mozPhoneNumberService = window.navigator.mozPhoneNumberService;
|
||||
ok(mozPhoneNumberService, "mozPhoneNumberService exists");
|
||||
var steps = [
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("123", "123");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, true, "same number");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("abcdef", "222333");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, true, "normalize first number");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("abc333", "222def");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, true, "normalize first and second number");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("1234567", "1234568");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, false, "different numbers should not match");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("1234567", "123456");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, false, "different length numbers should not match");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("1234567", "123456---");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, false, "invalid number should not match valid number");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("111", undefined);
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, false, "missing second argument should not match");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch(undefined, "111");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, false, "missing first argument should not match");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch(null, "");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, true, "missing first argument should fuzzy match empty string");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("+552155555555", "2155555555");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, true, "test internationalization of number");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function() {
|
||||
req = mozPhoneNumberService.fuzzyMatch("aaa123456789", "zzzzz123456789");
|
||||
req.onsuccess = function(e) {
|
||||
is(req.result, true, "substring matching should be in effect");
|
||||
next();
|
||||
};
|
||||
req.onerror = onFailure;
|
||||
},
|
||||
function () {
|
||||
ok(true, "all done!\n");
|
||||
SimpleTest.finish();
|
||||
}
|
||||
];
|
||||
|
||||
function next() {
|
||||
ok(true, "Begin!");
|
||||
if (index >= steps.length) {
|
||||
ok(false, "Shouldn't get here!");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
var i = index++;
|
||||
steps[i]();
|
||||
} catch(ex) {
|
||||
ok(false, "Caught exception", ex);
|
||||
}
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addLoadEvent(next);
|
||||
</script>
|
||||
</window>
|
|
@ -1,94 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!-- Any copyright is dedicated to the Public Domain.
|
||||
- http://creativecommons.org/publicdomain/zero/1.0/ -->
|
||||
|
||||
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
||||
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
||||
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="Mozilla Bug 781379">
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript" src="head.js"/>
|
||||
<!-- test results are displayed in the html:body -->
|
||||
<body xmlns="http://www.w3.org/1999/xhtml">
|
||||
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
|
||||
target="_blank">Mozilla Bug 809213</a>
|
||||
</body>
|
||||
|
||||
<script type="application/javascript;version=1.8">
|
||||
|
||||
"use strict";
|
||||
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
Components.utils.import("resource://gre/modules/PhoneNumberUtils.jsm");
|
||||
|
||||
Services.prefs.setIntPref("dom.phonenumber.substringmatching.BR", 8);
|
||||
Services.prefs.setCharPref("ril.lastKnownSimMcc", "724");
|
||||
|
||||
function CantParseWithMcc(dial, mcc) {
|
||||
var result = PhoneNumberUtils.parseWithMCC(dial, mcc);
|
||||
if (result) {
|
||||
ok(false, "Shouldn't parse!\n");
|
||||
dump("expected: does not parse");
|
||||
dump("got: " + dial + " " + mcc);
|
||||
} else {
|
||||
ok(true, "Parses");
|
||||
}
|
||||
}
|
||||
|
||||
function ParseWithMcc(dial, mcc) {
|
||||
var result = PhoneNumberUtils.parseWithMCC(dial, mcc);
|
||||
if (result) {
|
||||
ok(true, "Parses!\n");
|
||||
} else {
|
||||
ok(false, "Should Parse");
|
||||
dump("expected: parses");
|
||||
}
|
||||
}
|
||||
|
||||
function ParseWithCountryName(dial, countryName) {
|
||||
var result = PhoneNumberUtils.parseWithCountryName(dial, countryName);
|
||||
if (result) {
|
||||
ok(true, "Parses!\n");
|
||||
} else {
|
||||
ok(false, "Should Parse");
|
||||
dump("expected: parses");
|
||||
}
|
||||
}
|
||||
|
||||
function CantParseWithCountryName(dial, countryName) {
|
||||
var result = PhoneNumberUtils.parseWithCountryName(dial, countryName);
|
||||
if (result) {
|
||||
ok(false, "Should not Parse");
|
||||
dump("expected: does not parse!\n");
|
||||
} else {
|
||||
ok(true, "Expected Parsing error!\n");
|
||||
}
|
||||
}
|
||||
|
||||
function FuzzyMatch(number1, number2, expect) {
|
||||
var result = PhoneNumberUtils.fuzzyMatch(number1, number2);
|
||||
is(result, expect, "FuzzyMatch OK!");
|
||||
}
|
||||
|
||||
// Unknown mcc
|
||||
CantParseWithMcc("1234", 123);
|
||||
ParseWithMcc("4165555555", 302);
|
||||
|
||||
ParseWithCountryName("4155123456", "US");
|
||||
CantParseWithCountryName("4155123456", "001");
|
||||
CantParseWithCountryName("4155123456", "XXY");
|
||||
ParseWithCountryName("4155123456", "US");
|
||||
|
||||
|
||||
is(PhoneNumberUtils.normalize("123abc", true), "123", "NumbersOnly");
|
||||
is(PhoneNumberUtils.normalize("123abc", false), "123222", "NumbersOnly");
|
||||
|
||||
FuzzyMatch("123abc", "123222", true);
|
||||
FuzzyMatch("123456789", "123456789", true);
|
||||
FuzzyMatch("111", null, false);
|
||||
FuzzyMatch("+552155555555", "2155555555", true);
|
||||
FuzzyMatch("aaa123456789", "zzzzz123456789", true);
|
||||
</script>
|
||||
</window>
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=674720
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 883923 PhoneNumberUtils FuzzyMatch</title>
|
||||
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=883923">Mozilla Bug 883923</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
"use strict";
|
||||
|
||||
var mozPhoneNumberService = window.navigator.mozPhoneNumberService;
|
||||
is(mozPhoneNumberService, undefined, "mozPhoneNumberService should not be accessible");
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -1,15 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[JSImplementation="@mozilla.org/phoneNumberService;1",
|
||||
NavigatorProperty="mozPhoneNumberService",
|
||||
ChromeOnly]
|
||||
interface PhoneNumberService {
|
||||
DOMRequest fuzzyMatch([TreatNullAs=EmptyString] optional DOMString number1 = "",
|
||||
[TreatNullAs=EmptyString] optional DOMString number2= "");
|
||||
|
||||
DOMString normalize(DOMString number);
|
||||
};
|
|
@ -363,7 +363,6 @@ WEBIDL_FILES = [
|
|||
'Permissions.webidl',
|
||||
'PermissionSettings.webidl',
|
||||
'PermissionStatus.webidl',
|
||||
'PhoneNumberService.webidl',
|
||||
'Plugin.webidl',
|
||||
'PluginArray.webidl',
|
||||
'PointerEvent.webidl',
|
||||
|
|
Загрузка…
Ссылка в новой задаче