From 9365b958d6034b36e41b8061d555408b2bc2e4c9 Mon Sep 17 00:00:00 2001 From: "jia.shao.peng" Date: Sun, 30 May 2010 14:54:50 +0000 Subject: [PATCH] Update library with new metadata. git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@35 ee073f10-1060-11df-b6a4-87a95322a99c --- .../phonenumbers/src/PhoneNumberMetaData.xml | 262 +++++++++++++++--- .../phonenumbers/PhoneNumberMetadataProto | Bin 128993 -> 131067 bytes .../i18n/phonenumbers/PhoneNumberUtil.java | 27 +- 3 files changed, 249 insertions(+), 40 deletions(-) diff --git a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml index d714e48a..a463f495 100644 --- a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml +++ b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml @@ -892,7 +892,8 @@ - @@ -936,7 +937,7 @@ - + @@ -944,16 +945,17 @@ \d{7,10} - 242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\d{4} + 242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3467]|8[0-4]|9[2-467])|461|502|6(?:12|7[67]|8[78]|9[89])|702)\d{4} 2423456789 - 242(?:[3-5]57|359)\d{4} + 242(?:3(?:5[79]|[79]5)|4(?:[2-4][1-9]|5[1-8]|6[2-8]|7\d|81)|5(?:2[34]|3[35]|44|5[1-9]|65|77)|6[34]6|727)\d{4} \d{10} 2423591234 - 8(?:00|66|77|88)[2-9]\d{6} + + 242300\d{4}|8(?:00|66|77|88)[2-9]\d{6} \d{10} 8002123456 @@ -1321,7 +1323,9 @@ $1 $2 $3 - + $1 $2 $3 $1 $2 $3 $1 $2 $3 - $1 $2 $3 + $1 $2 $3 [1-79]\d{7,11}|8[0-357-9]\d{6,9} @@ -1388,7 +1392,7 @@ $1 $2 $3 - [29]\d{6} + [259]\d{6} \d{7} @@ -1396,10 +1400,10 @@ 2211234 - - 9[157-9]\d{5} + + (?:9\d|59)\d{5} 9911234 @@ -2011,6 +2015,8 @@ + @@ -2044,13 +2050,15 @@ - 1(?:1[3-8]|[2-69]1)\d{7}|1(?:2(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|8[02-9]|9[0-9])|3(?:0\d|[25][02-9]|3[02-579]|4[0-56-9]|[68][0-46-9]|7[1-35-79]|9[24578])|4(?:0[03-9]|2[02-57-9]|[378]\d|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|2[024-9]|3[014-689]|4[02-9]|[57][03-9]|6\d|8[0-68]|9[0-57-9])|6(?:0[034689]|2[0-689]|3[13-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|8[013-9]|9[0-24578])|7(?:0[0246-9]|2\d|3[0236-8]|4[03-9]|5[0-46-9]|6[13-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\d|8[2-9]|9[02569])|9(?:0[02-589]|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|8\d|9[2-57]))\d{5,6}|(?:2[03489]|3[0347]|55)\d{8} + 1(?:1[3-8]|[2-69]1)\d{7}|1(?:2(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|8[02-9]|9[0-9])|3(?:0\d|[25][02-9]|3[02-579]|4[0-56-9]|[68][0-46-9]|7[1-35-79]|9[24578])|4(?:0[03-9]|2[02-57-9]|[37]\d|4[02-69]|5[0-8]|[69][0-79]|8[02-9])|5(?:0[1-35-9]|2[024-9]|3[015689]|4[02-9]|[57][03-9]|6\d|8[0-68]|9[0-57-9])|6(?:0[034689]|2[035689]|3[13-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|8[013-9]|9[0-24578])|7(?:0[0246-9]|2\d|3[0236-8]|4[03-9]|5[0-46-9]|6[13-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\d|8[2-9]|9[02569])|9(?:0[02-589]|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|8\d|9[2-57]))\d{5,6}|(?:2[03489]|3[0347]|55)\d{8} 1212345678 - 7(?:[1-57-9]\d{8}|624\d{6}) + + 7(?:4[0-26]\d|5(?:[013-9]\d|2[0-35-9])|7(?:0[1-9]|8[02-9]|9[0-689]|[1-7]\d)|8(?:[014-9]\d|[23][0-8])|9(?:1[02-9]|2[0135-9]|3[0-689]|[04-9]\d))\d{6} \d{10} - 7123456789 + 7400123456 + (?:9[018]\d|87[1-3])\d{7} \d{10} 9012345678 - 8(?:4[3-5]|7[01])\d{7} + 8(?:4[3-5]|70)\d{7} \d{10} 8431234567 @@ -2138,14 +2148,12 @@ - (?:122|2(?:22|36|5[03])|3(?:1[0-35-8]|[256]\d|3[1-35679]|4[024-79]|7[0-39]|9[1-35-7])|44[2-6])\d{5} + (?:122|2(?:22|36|5[03])|3(?:1[0-35-8]|[24-6]\d|3[1-35679]|7[0-39]|9[1-35-7])|44[2-6])\d{5} \d{3,8} 32123456 - - (?:5[014578]|62|7[1479]|9[0135-9])\d{6} + (?:5[1578]|6[28]|7[0147-9]|9[0135-9])\d{6} \d{8} 55123456 @@ -2161,6 +2169,53 @@ + + + + + + [157-9]\d{6,9} + \d{6,10} + + + 1481\d{6} + 1481123456 + + + 7(?:781|839|911)\d{6} + \d{10} + 7781123456 + + + + 80(?:01111|\d{7,8})|500\d{6} + \d{7,10} + 8012345678 + + + (?:9[018]\d|87[1-3])\d{7} + \d{10} + 9012345678 + + + 8(?:4[3-5]|70)\d{7} + \d{10} + 8431234567 + + + 70\d{8} + \d{10} + 7012345678 + + + 56\d{8} + \d{10} + 5612345678 + + + @@ -2712,6 +2767,52 @@ + + + + + + [157-9]\d{6,9} + \d{6,10} + + + 1624\d{6} + 1624123456 + + + 7[69]24\d{6} + 7624123456 + + + + 80(?:01111|\d{7,8})|500\d{6} + \d{7,10} + 8012345678 + + + (?:9[018]\d|87[1-3])\d{7} + \d{10} + 9012345678 + + + 8(?:4[3-5]|70)\d{7} + \d{10} + 8431234567 + + + 70\d{8} + \d{10} + 7012345678 + + + 56\d{8} + \d{10} + 5612345678 + + + @@ -2930,6 +3031,53 @@ + + + + + + [157-9]\d{6,9} + \d{6,10} + + + 1534\d{6} + 1534123456 + + + 7(?:7(?:00|97)|829|937)\d{6} + \d{10} + 7797123456 + + + + 80(?:01111|\d{7,8})|500\d{6} + \d{7,10} + 8012345678 + + + (?:9[018]\d|87[1-3])\d{7} + \d{10} + 9012345678 + + + 8(?:4[3-5]|70)\d{7} + \d{10} + 8431234567 + + + 70\d{8} + \d{10} + 7012345678 + + + 56\d{8} + \d{10} + 5612345678 + + + @@ -4451,7 +4599,8 @@ - + $1 $2 $3 $4 - [2-9]\d{7} - \d{8} + 0\d{4}|[2-9]\d{7} + \d{5}(?:\d{3})? - (?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7\d)\d{6}|81(?:0(?:0[7-9]|1\d)|5\d{2})\d{3} + numbers, as well as the 5-digit country-wide numbers used by businesses + that begin with 0. --> + 0\d{4}|(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7\d)\d{6}|81(?:0(?:0[7-9]|1\d)|5\d{2})\d{3} 21234567 (?:4[015-8]|9\d)\d{6} + \d{8} 41234567 80[01]\d{5} + \d{8} 80012345 82[09]\d{5} + \d{8} 82012345 810(?:0[0-6]|[2-8]\d)\d{3} + \d{8} 81021234 880\d{5} + \d{8} 88012345 @@ -4963,8 +5118,10 @@ + + nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG" + preferredExtnPrefix=" int "> $1 $2 $3 @@ -4973,15 +5130,18 @@ [237-9]\d{8} - \d{6,9} + + \d{9} - [23][3-6]\d{7} - 231234567 + [23][13-6]\d{7} + 211234567 - 7\d{8} - \d{9} + 7[1-8]\d{7} 712345678 @@ -4990,10 +5150,17 @@ 800123456 - 9\d{8} - \d{9} - 912345678 + 90[036]\d{6} + 900123456 + + 801\d{6} + 801123456 + + + 802\d{6} + 802123456 + @@ -6060,6 +6227,31 @@ + + + + + + $1 $2 $3 + + + 06\d{8} + \d{10} + + + 06698\d{5} + 0669812345 + + + + N/A + N/A + + + + diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto b/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto index 251b52752e2fae87433009bfa8c031526a9d190a..13a506d200cde58323c06b1f5f206b2d4a7492eb 100644 GIT binary patch delta 6813 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 )_leKV)FU@Q5 zjK=i2*g_2;}@InYSnx>bD(FtId1G45bqLVmrD?=DieQ&hQ_0;D}^CrQo+Y z@F1_VLZvZN0*bd~@@dPF8m|`rRFt0^VmOhiR34K66W{nD67?c8h~YR}OT%nnRim}? z&RqmHwLxq-NU7=v?4gFhbk|MZ-h(_{tFkbY&0Rvh_Ql53$OxCq;ics)t$4;>D$-j~ z+t-!9zZWJo2`1S5?6!WTJboV*NTk;01LUtcWY9l%36^}Nz?}Fgs84%5lu9}u#0;pZ z!j=k@|0sON=SVct`#oT=R5Hi(&a7Fl$q^IU38F%^fAgtyqoRL&6Jn^3+iwb$*-QkehEbaP+jB&|HfNDg_1+I zpQPNmfOl&`mT|#-noV4)WQui7*vwB#6r0YT##`#ddQt}Ud1kuk+VAl$q(mi|E9z38 zMYSezzmOOZQr8D(395#~Z^Y@o72^*p<3^X;p6PaqEF->zJ}YTbrZl;Z7QMmGox@Uq z&;AKs4MgMWv$N83NxJY%zl$bW!JB?U4oRe+ry>#jsq+{J$RC}@m2gl#5-MxB2tWB^ z1YNYd>NUd856%k94;Q0fLea@MReeUuTZ6LUBnk(fzxDN zbRT%E%SeX-9y^a}7A1pP7b)pw+EtvCtQ5#X$dc#&O32h$_t52w2Zy4|vEPtp5+nEE z(fWA^Rpj*C{X6`U^(bWzvp`jm*eH%qn?t|(tb3Ghu+24m0Ll8JP*f_vex2H0>jggG z20j%u_9hvf=$AJ!ThNiWFk5fEK!025KOOxB<&FmOP60LDZNv(R*0;rlFYuDvsQVw? Csg7X) diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java index ce0ab66c..c027a92d 100644 --- a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java @@ -68,9 +68,13 @@ public class PhoneNumberUtil { private static final int NANPA_COUNTRY_CODE = 1; // The set of countries that share country code 7. - private final HashSet russiaFederationCountries = new HashSet(2); + private final HashSet russiaFederationCountries = new HashSet(3); private static final int RUSSIAN_FED_COUNTRY_CODE = 7; + // The set of countries that share country code 44. + private final HashSet greatBritainAndDependencies = new HashSet(7); + private static final int GREAT_BRITAIN_COUNTRY_CODE = 44; + // The set of countries that share country code 262. private final HashSet frenchIndianOceanTerritories = new HashSet(6); @@ -165,11 +169,13 @@ public class PhoneNumberUtil { static { HashSet aSet = new HashSet(10); aSet.add(39); // Italy + aSet.add(47); // Norway aSet.add(225); // Cote d'Ivoire aSet.add(227); // Niger aSet.add(228); // Togo aSet.add(240); // Equatorial Guinea aSet.add(241); // Gabon + aSet.add(379); // Vatican City LEADING_ZERO_COUNTRIES = Collections.unmodifiableSet(aSet); } @@ -377,17 +383,21 @@ public class PhoneNumberUtil { frenchIndianOceanTerritories.add(regionCode); frenchIndianOceanTerritories.add(regionCode.toLowerCase()); break; + case GREAT_BRITAIN_COUNTRY_CODE: + greatBritainAndDependencies.add(regionCode); + break; default: countryCodeToRegionCodeMap.put(countryCode, regionCode); break; } } - // Override the value, so that 1 is always mapped to US, 7 is always mapped to RU, and 262 to - // RE. + // Override the value, so that 1 is always mapped to US, 7 is always mapped to RU, 44 to GB + // and 262 to RE. countryCodeToRegionCodeMap.put(NANPA_COUNTRY_CODE, "US"); countryCodeToRegionCodeMap.put(RUSSIAN_FED_COUNTRY_CODE, "RU"); countryCodeToRegionCodeMap.put(FRENCH_INDIAN_OCEAN_COUNTRY_CODE, "RE"); + countryCodeToRegionCodeMap.put(GREAT_BRITAIN_COUNTRY_CODE, "GB"); } catch (IOException e) { LOGGER.log(Level.WARNING, e.toString()); } catch (ClassNotFoundException e) { @@ -799,6 +809,12 @@ public Set getSupportedCountries() { // Details here: http://www.petitfute.com/voyage/225-info-pratiques-reunion return format(number, PhoneNumberFormat.NATIONAL); } + if (countryCode == GREAT_BRITAIN_COUNTRY_CODE && + greatBritainAndDependencies.contains(countryCallingFrom)) { + // It seems that numbers can be dialled in national format between Great Britain and the crown + // dependencies with the same country code. + return format(number, PhoneNumberFormat.NATIONAL); + } // If the country code is the Russian Fed country code, we check the number itself to determine // which region code it is for. We don't do this for NANPA countries because of performance // reasons, and instead use US rules for all NANPA numbers. Also, NANPA countries share the @@ -1178,8 +1194,7 @@ public Set getSupportedCountries() { int numberLength = nationalSignificantNumber.length(); return numberLength > MIN_LENGTH_FOR_NSN && numberLength <= MAX_LENGTH_FOR_NSN; } - return isNumberMatchingDesc(nationalSignificantNumber, generalNumDesc) - && getNumberTypeHelper(nationalSignificantNumber, metadata) != PhoneNumberType.UNKNOWN; + return getNumberTypeHelper(nationalSignificantNumber, metadata) != PhoneNumberType.UNKNOWN; } /** @@ -1207,6 +1222,8 @@ public Set getSupportedCountries() { return getRegionCodeForNumberFromRegionList(number, russiaFederationCountries); case FRENCH_INDIAN_OCEAN_COUNTRY_CODE: return getRegionCodeForNumberFromRegionList(number, frenchIndianOceanTerritories); + case GREAT_BRITAIN_COUNTRY_CODE: + return getRegionCodeForNumberFromRegionList(number, greatBritainAndDependencies); default: return getRegionCodeForCountryCode(countryCode); } -- 2.34.1