Browse Source

Fix a bug where NANPA numbers starting with 1 were incorrectly formatted.

pull/567/head
Shaopeng Jia 16 years ago
committed by Mihaela Rosca
parent
commit
eccb652a29
2 changed files with 18 additions and 2 deletions
  1. +4
    -1
      java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java
  2. +14
    -1
      java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java

+ 4
- 1
java/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java View File

@ -251,7 +251,10 @@ public class AsYouTypeFormatter {
private void removeNationalPrefixFromNationalNumber() {
int startOfNationalNumber = 0;
if (currentMetaData.hasNationalPrefix()) {
if (currentMetaData.getCountryCode() == 1 && nationalNumber.charAt(0) == '1') {
startOfNationalNumber = 1;
prefixBeforeNationalNumber.append("1 ");
} else if (currentMetaData.hasNationalPrefix()) {
Matcher m = nationalPrefixForParsing.matcher(nationalNumber);
if (m.lookingAt()) {
startOfNationalNumber = m.end();


+ 14
- 1
java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java View File

@ -53,6 +53,19 @@ public class AsYouTypeFormatterTest extends TestCase {
assertEquals("650 253 222", formatter.inputDigit('2'));
assertEquals("650 253 2222", formatter.inputDigit('2'));
formatter.clear();
assertEquals("1", formatter.inputDigit('1'));
assertEquals("16", formatter.inputDigit('6'));
assertEquals("165", formatter.inputDigit('5'));
assertEquals("1650", formatter.inputDigit('0'));
assertEquals("16502", formatter.inputDigit('2'));
assertEquals("1 650 25", formatter.inputDigit('5'));
assertEquals("1 650 253", formatter.inputDigit('3'));
assertEquals("1 650 253 2", formatter.inputDigit('2'));
assertEquals("1 650 253 22", formatter.inputDigit('2'));
assertEquals("1 650 253 222", formatter.inputDigit('2'));
assertEquals("1 650 253 2222", formatter.inputDigit('2'));
formatter.clear();
assertEquals("6", formatter.inputDigit('6'));
assertEquals("65", formatter.inputDigit('5'));
@ -262,7 +275,7 @@ public class AsYouTypeFormatterTest extends TestCase {
assertEquals("0301", formatter.inputDigit('1'));
assertEquals("03012", formatter.inputDigit('2'));
assertEquals("030 123", formatter.inputDigit('3'));
assertEquals("030 1234", formatter.inputDigit('4'));
assertEquals("030 1234", formatter.inputDigit('4'));
}
public void testAsYouTypeFormatterAR() {


Loading…
Cancel
Save