From 59379760a83ed81cca6d8bebda1e4d7270e22bac Mon Sep 17 00:00:00 2001 From: Shaopeng Jia Date: Fri, 30 Jul 2010 14:47:20 +0000 Subject: [PATCH] Improve AsYouTypeFormatter to handle Chinese local numbers; improve extension parsing; metadata update; also adding release_notes.txt --- java/release_notes.txt | 9 + .../phonenumbers/src/PhoneNumberMetaData.xml | 306 +++++++++++++----- .../test/PhoneNumberMetaDataForTesting.xml | 4 +- .../phonenumbers/PhoneNumberMetadataProto | Bin 100288 -> 102748 bytes .../i18n/phonenumbers/PhoneNumberUtil.java | 2 +- .../PhoneNumberMetadataProtoForTesting | Bin 8110 -> 8113 bytes .../phonenumbers/PhoneNumberUtilTest.java | 2 + 7 files changed, 236 insertions(+), 87 deletions(-) create mode 100644 java/release_notes.txt diff --git a/java/release_notes.txt b/java/release_notes.txt new file mode 100644 index 000000000..afc82c1aa --- /dev/null +++ b/java/release_notes.txt @@ -0,0 +1,9 @@ +July 30th, 2010 + +* Metadata change: + - new country: TL + - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN + +* Code improvement + - China local number formatting for AsYouTypeFormatter + - improve extension parsing to handle number in the form of +1 (645) 123 1234 ext. 910# \ No newline at end of file diff --git a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml index b27b53478..6ae2b91e2 100644 --- a/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml +++ b/java/resources/com/google/i18n/phonenumbers/src/PhoneNumberMetaData.xml @@ -668,7 +668,7 @@ - 1[28]|22|[4-8] + 1[28]|22|[3-8] $1 $2 $3 @@ -677,11 +677,11 @@ - [124-8]\d{7,8} + [1-8]\d{7,8} \d{8,9} - (?:1(?:(?:[28]\d|36|9)\d|02|1[0-589]|3[358]|4[013-79]|5[0-479]|6[0236-9]|7[0-24-8])|2(?:16|2\d|3[0-24]|4[1468]|55|6[56]|79))\d{5} + (?:1(?:(?:[28]\d|9)\d|02|1[0-589]|3[358]|4[013-79]|5[0-479]|6[0236-9]|7[0-24-8])|2(?:16|2\d|3[0-24]|4[1468]|55|6[56]|79)|365?\d)\d{5} 123123456 @@ -1649,6 +1649,21 @@ + + 80[2678] + $1 $2 + + + + + [2-9] + $1 $2 + 21 @@ -1663,21 +1678,21 @@ $1 $2 $3 - 80 - $1 $2 + pattern="(\d{3})(\d{4})(\d{4})"> + 3(?:11|7[159])|4[135]1|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898 + $1 $2 $3 - [35-79]|[48][1-9] + pattern="(\d{3})(\d{3})(\d{4})"> + 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[0-46-9]|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5]) $1 $2 $3 1[3-58] $1 $2 $3 - - 40 + + [48]00 $1 $2 $3 @@ -1686,6 +1701,45 @@ 10800 $1 $2 $3 + + 21 + $1 $2 $3 + + + 10[1-9]|2[02-9] + + 10[1-9]|2[02-9] + 10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9] + $1 $2 $3 + + + 80[2678] + $1 $2 + + + 3(?:11|7[159])|4[135]1|5(?:1|2[37]|3[12]|7[13-79]|9[15])|7(?:31|5[457]|6[09])|898 + $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[0-46-9]|8[23])|5(?:3[03-9]|4[36]|5|6[1-6]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|[37]|5[1-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5]) + $1 $2 $3 + + + 1[3-58] + $1 $2 $3 + + + [48]00 + $1 $2 $3 + + + 108 + 1080 + 10800 + $1 $2 $3 + [1-79]\d{7,11}|8[0-357-9]\d{6,9} @@ -1705,9 +1759,9 @@ collected from searching the web. --> - 10800\d{7} - \d{12} - 108001234567 + (?:10)?800\d{7} + \d{10,12} + 8001234567 16[08]\d{5} @@ -2385,6 +2439,7 @@ @@ -2696,39 +2751,28 @@ - + - - [27][12]|4[12]|[35689]1 - $1 $2 - - - 25|31|[4-9] - $1 $2 - - - 2[0346-8]|3[02-9]|54 - $1 $2 $3 + + $1 $2 $3 - [2-9]\d{4,8} - \d{5,9} + [235]\d{6,8} + \d{7,9} - - (?:251|3[467]2|41|5(?:[36]1|[78]2)|61|882|9(?:1|6[268]))\d{3}|(?:31[24]|567|6(?:1|5[23])|7(?:2|43)|9(?:1|35))\d{4}|(?:2[12]|3(?:45|9[24])|4(?:2|32])|5(?:1|6[58])|64[28]|7(?:1[567]?|46|5[26]|62)|8(?:1|4[268]|7[26])|9(?:31|53))\d{5}|(?:2[12]|42|51)\d{6}|3\d{8} - \d{5,9} - 251234 + 3(?:0[237]\d|[167](?:2[0-6]|7\d)|2(?:2[0-5]|7\d)|3(?:2[0-37]|7\d)|4(?:[27]\d|30)|5(?:2[0-7]|7\d)|8(?:2[0-2]|7\d)|9(?:20|7\d))\d{5} + \d{7,9} + 302345678 - 2(?:755\d{4}|(?:4\d?|08)\d{6}|[368]\d{7})|54\d{7} - \d{8,9} - 27551234 + 2((?:[47]\d|08)\d{6}|[368]\d{7})|54\d{7} + \d{9} + 231234567 @@ -3816,7 +3860,7 @@ $1 $2 $3 - 7[47-9] + 7[457-9] $1 $2 $3 $4 $5 @@ -3829,14 +3873,14 @@ \d{7,9} - (?:[2356][2-8])\d{6} + [2356][2-8]\d{6} \d{7,8} 62345678 - - 7(?:4[5-7]|7[5-79]|8[5-8]|9[05-9])\d{6} + 7(?:4[5-7]|55|7[5-79]|8[5-8]|9[05-9])\d{6} \d{9} 790123456 @@ -4353,8 +4397,12 @@ - - 20 + + 20[23] + $1 $2 $3 $4 + + + 20[579] $1 $2 $3 $4 @@ -4363,8 +4411,8 @@ - [2-57]\d{7,8} - \d{6,9} + [2-57]\d{7,9} + \d{6,10} (?:[2-57]1|54)\d{6} @@ -4372,10 +4420,8 @@ 21212862 - - 20[2357-9]\d{6} - \d{9} + 20(?:[23]|5[4-6]|77|9[89])\d{6} + \d{9,10} 202345678 @@ -5899,8 +5945,8 @@ - (?:3\d{2}|4[257]\d|5[34]\d|6[24]9|85[02-46-9]|9[78]\d)\d{4} + 47X range prescribed by the plan. The same applies to extra 64X numbers. --> + (?:3\d{2}|4[257]\d|5[34]\d|6(?:29|4[1-9])|85[02-46-9]|9[78]\d)\d{4} \d{7} 3123456 @@ -5997,31 +6043,69 @@ + nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)"> - - 2[25]|4[0146-9]|5[1-35-8]|6[1-8]|7[14]|8[16]|91 - $1 $2 $3 + + + (?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)1 + (?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)11 + (?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)111 + $1 $2 $3 $4 - - 21|42 - $1 $2 $3 + + (?:2[349]|45|54|60|72|8[2-5]|9[2-9]) + (?:2[349]|45|54|60|72|8[2-5]|9[2-9])\d1 + (?:2[349]|45|54|60|72|8[2-5]|9[2-9])\d11 + (?:2[349]|45|54|60|72|8[2-5]|9[2-9])\d111 + $1 $2 $3 $4 + + + (?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9] + $1 $2 + + + 2[349]|45|54|60|72|8[2-5]|9[2-9] + (?:2[349]|45|54|60|72|8[2-5]|9[2-9])\d[2-9] + $1 $2 + + + 3 + $1 $2 + + + 58[12]|1 + $1 $2 + + + + 586 + $1 $2 - - 2[349]|3|45|54|60|72|8[02-5]|9[02-9] + + [89]00 $1 $2 $3 - [2-9]\d{7,9} - \d{7,10} + + 1\d{8}|[2-8]\d{5,11}|9(?:[013-9]\d{4,9}|2\d(?:111\d{6}|\d{3,7})) + \d{6,12} - (?:21|42)\d{8}|(?:2(?:[25]|3[2358]|4[2-4]|9[78])|4(?:[0146-9]|5[3479])|5(?:[1-35-8]|4[2-467])|6(?:[1-8]|0[468])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))\d{7} - 2112345678 + + (?:21|42)[2-9]\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\d{6}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\d{5,6}|58[126]\d{7} + \d{6,10} + 2123456789 - 3[0-6]\d{8} + 3(?:0\d|1[2-5]|2[1-3]|3[1-6]|4[2-6]|64)\d{7} \d{10} 3012345678 @@ -6035,6 +6119,23 @@ \d{8} 90012345 + + + (?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467]|8[126])|6(?:[1-8]|0[468])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\d{6} + \d{11,12} + 21111825888 + + + + 122\d{6} + \d{9} + + 122044444 + @@ -6170,25 +6271,30 @@ - + + 8 + $1 $2 + + + [3-7] $1 $2 - [3-8]\d{6} - \d{7} + [3-8]\d{6,7} + \d{7,8} - 4\d{6} - 4123456 + 44\d{6} + 44123456 - [35-7]\d{6} - 3123456 + (?:33|55|66|77)\d{6} + 33123456 - 80\d{5} - 8012345 + 800\d{4} + 8001234 @@ -6903,8 +7009,8 @@ - + @@ -6927,10 +7033,8 @@ 2171234 - (?:6|7[67])\d{6} - 6012345 + 76123456 @@ -7133,8 +7237,38 @@ - + + + + + $1 $2 + + + + [2-47-9]\d{6} + \d{7} + + + (?:2[1-5]|3[1-9]|4[1-4])\d{5} + 2112345 + + + 7[2-4]\d{5} + 7212345 + + + 80\d{5} + 8012345 + + + 90\d{5} + 9012345 + + + 70\d{5} + 7012345 + @@ -7373,7 +7507,8 @@ Google searches and regression tests to reverse-engineer these rules. --> - 39|4(?:[45][0-5]|87)|5(?:0|67|7[37])|6[36-8]|9[1-9] + 39|4(?:[45][0-5]|87)|5(?:0|6[37]|7[37])|6[36-8]|9[1-9] + 39|4(?:[45][0-5]|87)|5(?:0|6(?:3[14-7]|7)|7[37])|6[36-8]|9[1-9] $1 $2 $3 @@ -7383,7 +7518,7 @@ 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]) - 3(?:5[013-9]|[1-46-8](?:22|[013-9]))|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]) + 3(?:5[013-9]|[1-46-8](?:22|[013-9]))|4(?:[137][013-9]|6|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6(?:3[02389]|[015689])|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8]) $1 $2 @@ -7697,6 +7832,7 @@ + @@ -7712,15 +7848,15 @@ 80 $1 $2 - - 693 + + 69 $1 $2 2[1348]|3[25]|5[01]|65|7[18] $1 $2 $3 - + 9 $1 $2 $3 $4 @@ -7739,14 +7875,14 @@ \d{7,10} - (?:2(?:[025-79]|1[0189]|[348][01])|3(?:[0136-9]|[25][01])|[48]\d|5(?:[01][01]|[2-9])|6(?:[0-46-8]|5[01])|7(?:[02-79]|[18][01]))\d{7}|(?:80|69[3-5])\d{5} + (?:2(?:[025-79]|1[0189]|[348][01])|3(?:[0136-9]|[25][01])|[48]\d|5(?:[01][01]|[2-9])|6(?:[0-46-8]|5[01])|7(?:[02-79]|[18][01]))\d{7}|69\d{5,6}|80\d{5} \d{7,10} 2101234567 - (?:9[0-8]|1(?:2\d|6[3-9]|99))\d{7} + (?:9\d|1(?:2[1-35-9]|6[3-9]|99))\d{7} \d{9,10} 912345678 diff --git a/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml b/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml index ea0e0ea1a..012cf0eda 100644 --- a/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml +++ b/java/resources/com/google/i18n/phonenumbers/test/PhoneNumberMetaDataForTesting.xml @@ -127,7 +127,9 @@ nationalPrefix="0" preferredInternationalPrefix="0011" nationalPrefixFormattingRule="$NP$FG"> - + + 1 $1 $2 $3 diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto b/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto index 56a2e1f4373d8836cdd746b63f975e65e88d7a43..c003b67f2cad8e7e4eb6e66adeaed8146a30f445 100644 GIT binary patch delta 4398 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 l*!W9W%{y0~8MClgo`q89gXS0q>6Egs`CmSIE delta 97 zcmdmJzs`O`3M(VS<_y+lOdK&O)m01(EDW2)IQ}woXvCyIc+xz7nb{2)89=kB!E0a105ibxoNY$OcOHz?`0Ur diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java index e6af641b2..535c6d63e 100644 --- a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java @@ -1609,6 +1609,8 @@ public class PhoneNumberUtilTest extends TestCase { usWithExtension.clear(); usWithExtension.setCountryCode(1).setNationalNumber(6451231234L).setExtension("910"); assertEquals(usWithExtension, phoneUtil.parse("+1 (645) 123 1234-910#", "US")); + // Retry with the same number in a slightly different format. + assertEquals(usWithExtension, phoneUtil.parse("+1 (645) 123 1234 ext. 910#", "US")); } public void testParseAndKeepRaw() throws Exception {