iziz / libPhoneNumber-iOS

iOS port from libphonenumber (Google's phone number handling library)
Apache License 2.0
2.36k stars 464 forks source link

Method .format(inOriginalFormat) returning incorrectly formatted string extension #319

Open whoyawn opened 4 years ago

whoyawn commented 4 years ago

Expected:

let phoneStr = "(562) 777-1609#1"
let defaultRegion = "US"
let fmtPhoneNumber: NBPhoneNumber = try phoneUtil.parse(phoneStr, defaultRegion: defaultRegion)
let processedPhoneNumber = try phoneUtil.format(inOriginalFormat: fmtPhoneNumber, regionCallingFrom: defaultRegion)

to return (562) 777-1609#1

Actual:

returns (562) 777-1609 ext. 1

Demo:

****Parsing Result:****
{"country_code":1,"national_number":5627771609,"extension":"1","raw_input":"(562) 777-1609#1","country_code_source":20}

****Validation Results:****
Result from isPossibleNumber(): true
Result from isValidNumber(): true
Result from isValidNumberForRegion(): true
Phone Number region: US
Result from getNumberType(): FIXED_LINE_OR_MOBILE

****ShortNumberInfo Results:****
Result from isPossibleShortNumber: false
Result from isValidShortNumber: false
Result from isPossibleShortNumberForRegion: false
Result from isValidShortNumberForRegion: false

****Formatting Results:**** 
E164 format: +15627771609
Original format: (562) 777-1609#1
National format: (562) 777-1609 ext. 1
International format: +1 562-777-1609 ext. 1
Out-of-country format from US: 1 (562) 777-1609 ext. 1
Out-of-country format from Switzerland: 00 1 562-777-1609 ext. 1

****AsYouTypeFormatter Results****
Char entered: ( Output: (
Char entered: 5 Output: (5
Char entered: 6 Output: (56
Char entered: 2 Output: (562
Char entered: ) Output: (562)
Char entered:   Output: (562) 
Char entered: 7 Output: (562) 7
Char entered: 7 Output: (562) 77
Char entered: 7 Output: (562) 777
Char entered: - Output: (562) 777-
Char entered: 1 Output: (562) 777-1
Char entered: 6 Output: (562) 777-16
Char entered: 0 Output: (562) 777-160
Char entered: 9 Output: (562) 777-1609
Char entered: # Output: (562) 777-1609#
Char entered: 1 Output: (562) 777-1609#1