diff --git a/java/build.xml b/java/build.xml index 8ce3ba368..27772665c 100644 --- a/java/build.xml +++ b/java/build.xml @@ -10,8 +10,8 @@ - - + + diff --git a/javascript/i18n/phonenumbers/metadata.js b/javascript/i18n/phonenumbers/metadata.js index 514315ec2..84a3a92c6 100644 --- a/javascript/i18n/phonenumbers/metadata.js +++ b/javascript/i18n/phonenumbers/metadata.js @@ -5059,7 +5059,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"(?:112|99[3459])","\\d{3}",,,"999"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"] +,"800":[,[,,"\\d{8}","\\d{8}",,,"12345678"] ,[,,"NA","NA",,,"12345678"] ,[,,"NA","NA",,,"12345678"] ,[,,"\\d{8}","\\d{8}",,,"12345678"] @@ -5075,7 +5075,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"] +,"808":[,[,,"\\d{8}","\\d{8}",,,"12345678"] ,[,,"NA","NA",,,"12345678"] ,[,,"NA","NA",,,"12345678"] ,[,,"NA","NA"] @@ -5091,7 +5091,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"[35-7]\\d{8}","\\d{9}",,,"301234567"] +,"870":[,[,,"[35-7]\\d{8}","\\d{9}",,,"301234567"] ,[,,"NA","NA",,,"301234567"] ,[,,"(?:[356]\\d|7[6-8])\\d{7}","\\d{9}",,,"301234567"] ,[,,"NA","NA"] @@ -5107,7 +5107,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?",,,"510012345"] +,"883":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?",,,"510012345"] ,[,,"NA","NA",,,"510012345"] ,[,,"NA","NA",,,"510012345"] ,[,,"NA","NA"] @@ -5124,7 +5124,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{11}","\\d{11}",,,"12345678901"] +,"888":[,[,,"\\d{11}","\\d{11}",,,"12345678901"] ,[,,"NA","NA",,,"12345678901"] ,[,,"NA","NA",,,"12345678901"] ,[,,"NA","NA"] @@ -5140,7 +5140,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{9}","\\d{9}",,,"123456789"] +,"979":[,[,,"\\d{9}","\\d{9}",,,"123456789"] ,[,,"NA","NA",,,"123456789"] ,[,,"NA","NA",,,"123456789"] ,[,,"NA","NA"] diff --git a/javascript/i18n/phonenumbers/metadatafortesting.js b/javascript/i18n/phonenumbers/metadatafortesting.js index 998012c34..8585b2986 100644 --- a/javascript/i18n/phonenumbers/metadatafortesting.js +++ b/javascript/i18n/phonenumbers/metadatafortesting.js @@ -452,7 +452,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{8}","\\d{8}",,,"12345678"] +,"800":[,[,,"\\d{8}","\\d{8}",,,"12345678"] ,[,,"NA","NA",,,"12345678"] ,[,,"NA","NA",,,"12345678"] ,[,,"\\d{8}","\\d{8}",,,"12345678"] diff --git a/javascript/i18n/phonenumbers/metadatalite.js b/javascript/i18n/phonenumbers/metadatalite.js index 0b399328e..fd45f0a1a 100644 --- a/javascript/i18n/phonenumbers/metadatalite.js +++ b/javascript/i18n/phonenumbers/metadatalite.js @@ -5059,7 +5059,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"(?:112|99[3459])","\\d{3}"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{8}","\\d{8}"] +,"800":[,[,,"\\d{8}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"\\d{8}","\\d{8}"] @@ -5075,7 +5075,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{8}","\\d{8}"] +,"808":[,[,,"\\d{8}","\\d{8}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -5091,7 +5091,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"[35-7]\\d{8}","\\d{9}"] +,"870":[,[,,"[35-7]\\d{8}","\\d{9}"] ,[,,"NA","NA"] ,[,,"(?:[356]\\d|7[6-8])\\d{7}","\\d{9}"] ,[,,"NA","NA"] @@ -5107,7 +5107,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?"] +,"883":[,[,,"51\\d{7}(?:\\d{3})?","\\d{9}(?:\\d{3})?"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -5124,7 +5124,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{11}","\\d{11}"] +,"888":[,[,,"\\d{11}","\\d{11}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] @@ -5140,7 +5140,7 @@ i18n.phonenumbers.metadata.countryToMetadata = { ,,[,,"NA","NA"] ,[,,"NA","NA"] ] -,"001":[,[,,"\\d{9}","\\d{9}"] +,"979":[,[,,"\\d{9}","\\d{9}"] ,[,,"NA","NA"] ,[,,"NA","NA"] ,[,,"NA","NA"] diff --git a/javascript/i18n/phonenumbers/phonenumberutil.js b/javascript/i18n/phonenumbers/phonenumberutil.js index 04d698020..ffc140b9f 100644 --- a/javascript/i18n/phonenumbers/phonenumberutil.js +++ b/javascript/i18n/phonenumbers/phonenumberutil.js @@ -1250,9 +1250,16 @@ i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_ = i18n.phonenumbers.PhoneNumberUtil.prototype.isValidRegionCode_ = function(regionCode) { + // In Java we check whether the regionCode is contained in supportedRegions + // that is built out of all the values of countryCallingCodeToRegionCodeMap + // (countryCodeToRegionCodeMap in JS) minus REGION_CODE_FOR_NON_GEO_ENTITY. + // In JS we check whether the regionCode is contained in the keys of + // countryToMetadata but since for non-geographical country calling codes + // (e.g. +800) we use the country calling codes instead of the region code as + // key in the map we have to make sure regionCode is not a number to prevent + // returning true for non-geographical country calling codes. return regionCode != null && - regionCode != - i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY && + isNaN(regionCode) && regionCode.toUpperCase() in i18n.phonenumbers.metadata.countryToMetadata; }; @@ -2512,8 +2519,7 @@ i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegion = i18n.phonenumbers.PhoneNumberUtil.prototype. getMetadataForNonGeographicalRegion = function(countryCallingCode) { - return this.getMetadataForRegion( - this.getRegionCodeForCountryCode(countryCallingCode)); + return this.getMetadataForRegion('' + countryCallingCode); }; diff --git a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java index a130688b4..76e281492 100644 --- a/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +++ b/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java @@ -136,6 +136,11 @@ public class BuildMetadataJsonFromXml extends Command { writer.write(","); } String regionCode = metadata.getId(); + // For non-geographical country calling codes (e.g. +800), use the country calling codes + // instead of the region code as key in the map. + if (regionCode.equals("001")) { + regionCode = Integer.toString(metadata.getCountryCode()); + } JSArrayBuilder jsArrayBuilder = new JSArrayBuilder(); toJsArray(metadata, jsArrayBuilder); writer.write("\""); diff --git a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar index 398f0363b..3d67596ed 100644 Binary files a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ