3 - Fixed issue 38, issue 39, issue 41 and issue 43
6 - Added phone number area mapping files for
9 - TW in English, Simplified and Traditional Chinese
11 - IT in English and Italian
13 - TR in English and Turkish
14 - CH in English, German, French and Italian
15 - Updates: CR, GE, IT, JP, KW, MH, MP, MU, PE, PM, RW, TG, TJ, TK
19 - Added PhoneNumberOfflineGeocoder, supporting classes and their unittests.
20 - Added GenerateAreaCodeData to transform phone number area mapping files from text files to binary
22 - Modified PhoneNumberParserServlet.java and phonenumberparser.jsp to incorporate
23 PhoneNumberOfflineGeocoding in the appengine demo.
26 - Added phone number area mapping files for NANPA countries and GB in English, NL in Dutch, AR, CL
27 and ES in Spanish, AT and DE in German, SE in Swedish, BR in Portuguese, KR in English, Korean,
28 Simplified and Traditional Chinese, and CN in Simplified Chinese.
32 - Fixes for PhoneNumberMatcher to be more restrictive in valid mode and not match numbers
33 surrounded by Latin characters. This ensures, for example, the string abc123456789acg will not be
34 marked as a phone numbers.
35 - Enable PhoneNumberUtil to handle all digits, rather than a subset
36 - Fix for AYTF issue36 and improvement for US AYTF behaviour.
38 - Updates: BG, EG, ES, GH, PF, SC, SY, VA
42 - Phonenumber now implements Serializable.
43 - findNumbers doesn't accept numbers with mis-matched brackets as phone-numbers
44 - An offline phone number geocoder has been added. The current implementation just returns the
45 region name for the phone number; more detailed geocoding will be added later.
47 - New countries: GF, KP, NC, PA, PF, PW, PY, SB, SR, TO, UY, VU
48 - Updates: CY, CZ, ES, GB, GQ, JM, MQ, TN, VI
52 - Fixed potential for a null-ptr exception in getExampleNumber
53 - Potential speed improvement with replacement of StringBuffer with StringBuilder
55 - Changed way that international formats are specified to make it easier to do so
56 - New countries: AX, CC, CX, WF
57 - Updates: AM, AR, AU, AW, CN, CO, CR, DM, EC, ET, FI, FJ, GH, IN, JP, KE, KM,
58 KN, LR, MD, MQ, MX, NP, PH, SC, SE, SM, SN, SY, UG, US, VC, VI, ZM
62 - Improved PhoneNumberMatcher for cases with other numbers before or after the phone number.
63 - Improved AsYouTypeFormatter not to use formatting rules containing non-formatting characters
64 (e.g. '*' in Israeli star numbers).
66 - New countries: FJ, FM, GY, NF, NI, NR, TV.
67 - Updates: AM, AZ, BF, BW, BZ, CI, CR, GB, GP, HK, JM, KH, LB, LY, MV, PE, PK, SZ, TJ, US.
68 * Minor documentation updates
72 - Adding date exclusion pattern in PhoneNumberMatcher.
73 - Fixing bug with selecting a suitable region for numbers with leading zeros where mutiple regions
74 for that country code are possible.
76 - Updates: AG, AI, AS, BB, BM, BS, CA, DM, DO, ET, FO, GD, GE, GU, IN, JM, KN, KY, LC, MN, MP, MR,
77 MS, NO, PR, TC, TR, TT, US, VC, VG, VI
78 - New countries: CK, FK, GT, IO, KI, SJ, SV
79 * Documentation updates and some small refactoring to AsYouTypeFormatter
83 - Can parse and format numbers in RFC-3966 format.
84 - Added isAlphaNumber to check to see if a number is a "vanity" or "alpha" number
85 - Can format a number made up of alpha-characters in an "out-of-country" format (e.g. 0011 1
86 800-SIX-FLAG to dial an American alpha-number from Australia).
88 - Renamed private vars, private methods and fixed comments to try and differentiate between country
89 (calling) codes and region codes.
90 == Non-backwards-compatible API changes: ==
91 - Renamed getSupportedCountries to getSupportedRegions, as this more accurately reflects that the
92 library is based around region codes.
93 - getNationalSignificantNumber is no longer a static method, but is instead an instance method.
95 - Bug-fixes and updates for AU, AZ, EE, FI, IN, JO, KW, KZ, MV, RU, RR, VA
100 - New mobile-number pattern for AU
104 - New function to format a number with the preferred domestic carrier code used when parsing,
105 falling back to a default calling code otherwise (formatNationalNumberWithPreferredCarrierCode).
106 - We now store the preferred domestic carrier code used when the user calls parseAndKeepRawInput
107 - New functionality to extract phone-numbers from text (findNumbers). This is just the first
108 version - it does not extract ALPHA numbers such as 0800 CALL ME, or numbers where alternate
109 endings are specified (such as 03-331 6005/6006).
111 - Tidying up the test file to use several pre-defined phone number constants
112 - Fixing several lint errors
113 - Added javadoc to formatNationalNumberWithCarrierCode
114 - Fixed bug where a null pointer exception was thrown when getAsYouTypeFormatter was called with an
116 - Improved AsYouTypeFormatter to deal with countries with variable-length patterns such as LU
118 - Bug-fixes and updates for the following countries: BF, BO, BR, CL, CO, CR, DK, FO, GE, KR, KW,
119 LA, LU, MU, SC, SH, TR, VE
124 - releasing the code to run the demo on localhost or appengine.
128 - Adding support for AC
132 - Update UAN number ranges for IM and JE.
136 - Better isNumberMatch method. This will now recognise numbers starting with a national prefix as
137 an NSN_MATCH, instead of SHORT_NSN_MATCH.
138 == Note Non-backwards-compatible API change here! ==
139 This will no longer throw a NumberParseException - instead we will return NOT_A_NUMBER if one
140 or other of the numbers provided do not match.
141 - New number-type UAN now supported in the code. This represents Company Numbers or Universally
144 - Bug-fixes and updates for the following countries: AG, AZ, BA, BE, CA, CU, ES, FI, GB, GD, GG,
145 IE, IL, IM, IN, IR, IT, JE, JP, KR, KW, NG, NZ, PK, PS, PT, RU, SE, SG, SY, US
146 - New countries: CO, LU, LY, MC, SM
147 - Addition of "Personal Number" ranges to all NANPA countries
151 - Introducing equals() and hashCode() methods for the Phonenumber.PhoneNumber class
155 - Fixing critical bug with non-Android-compatible code. isEmpty() was being used and CANON_EQ in
160 - Handle null phone-numbers when parsing by throwing a NumberParseException.
161 - Handle extension written with an accented "o", as per Spanish, when parsing.
162 - Handle U+30FC dashes as phone-number punctuation.
163 - Allow "ZZ" or null regions to be specified for numbers starting with a full-width "+" symbol, or
164 with other characters (such as whitespace) before the leading +.
165 - new getLengthOfNationalDestinationCode function
167 - New types of numbers introduced: UAN (universal or "company" numbers) and short codes. Note that
168 "generalDesc" patterns do not encompass short-codes. No code-support for these has been
169 introduced as of yet. We are also now enabling the collection of data for information such as
170 area-code-optional, and no-international-dialling ranges.
171 - Data updates as per ITU notifications/bug fixes for the following countries: AM, BH, CD, CG, CR,
172 DE, DJ, EE, GB, GN, HU, IE, JO, JP, LB, LR, MA, MK, MN, MR, NA, PG, SC, SG, SO, SZ, VN, ZA, ZW
173 - Data added for the following countries: BZ, CU, EC, FO, GI, HN, HT, LK, MT, MV, NU, PS, SD
174 - Indentation fixes in reg-exes for the following countries: BG, GB
175 - Allow nationalPrefixForParsing to be specified for countries with no national prefix, to handle
176 possible carrier prefixes
181 - Updated comments for GB/GG/IM/JE
185 - Updates to existing countries: AD, AG, AI, AN, AS, BB, BG, BM, BS, BW, CA, DM, DO, GD, GH, GM,
186 GU, IN, JM, KN, KY, KZ, LB, LC, MP, MS, PR, SY, TC, TT, TZ, US, VC, VG, VI.
187 - Reorganize reg-exes for better readability.
192 - Updates to existing countries: AE, GB, GG, IM, JE
196 - Allowed parsing of numbers that start with "++" or a full-width "+" symbol
197 - Allowed reg-exes for national and possible number patterns to have white space in them in the
199 - Added a more useful toString method for the phone number proto class
201 - Updates to existing countries: AF, BF, BO, ES, GB, GG, IM, IS, JE, JE, JP, KR, PE, PT, RU, SE,
204 - Parsing empty strings with invalid region codes no longer throws a null pointer exception
208 - Added new phone number type: pager
210 - update to existing country: GG, IM, JE, RS, RU
212 - ArrayOutOfBoundException in AsYouTypeFormatter.getRememberedPosition()
213 - AsYouTypeFormatter for UK childline number
216 * Bug fix on KZ metadata.
220 - Refactored BuildMetadataProtoFromXml.java into BuildMetadataFromXml.java and
221 BuildMetadataProtoFromXml.java
222 - Added BuildMetadataProtoFromXml.java and JSArrayBuilder.java
223 - Refactored CountryCodeToRegionCodeMap and CountryCodeToRegionCodeMapForTesting into separate
228 - AsYouTypeFormatter for formatting Chinese geographical numbers entered in national format.
229 - AsYouTypeFormatter for formatting Chinese 400/800 numbers entered in national format.
231 - new countries: AM, AN, BH, GL, IS
232 - adding national prefix 1 to all NANPA countries.
233 - update to existing countries: BF, FR, UK, PK, RE
236 * Further improve startup performance
237 - Preload no country specific metadata at startup.
238 - Stop creating the file containing mapping from country calling code to region code
239 and loading it at startup; instead, do the initialization in PhoneNumberUtil.
243 * Improve startup performance
244 - Separate generated metadata binary file to one file per region
245 - Preload US at start up, and load other region at the time when needed
246 - Create a file containing mapping from country calling code to region code,
247 and load it at startup
248 - Same change also applied to unittests
253 - update to existing country: AZ, CN, FR, GH, JO, LA, PG, PK, QA, SZ, UA, VN
256 - China local number formatting for AsYouTypeFormatter
257 - improve extension parsing to handle number in the form of +1 (645) 123 1234 ext. 910#