Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FindPhoneNumbers in text only supports single extension #403

Open
milliezhang-qinlan opened this issue May 28, 2021 · 1 comment
Open

FindPhoneNumbers in text only supports single extension #403

milliezhang-qinlan opened this issue May 28, 2021 · 1 comment
Assignees
Labels

Comments

@milliezhang-qinlan
Copy link

Steps to reproduce

Use findPhoneNumbersInText to find a phone number with multiple extensions, such as:
US +16888888888,,9988776#,,654321#

Observed result

It can only detect the first extension, the other extensions are ignored.

Expected result

findPhoneNumbersInText should return multiple extensions information rather than only return the first extension.

@catamphetamine
Copy link
Owner

catamphetamine commented May 28, 2021

That's because Google's libphonenumber doesn't support that feature.

https://github.com/google/libphonenumber/blob/10c40f6a583d97318449b3204a26f917dc6e308e/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java#L260-L263

// Check for extra numbers at the end.
// TODO: This is the place to start when trying to support extraction of multiple phone number
// from split notations (+41 79 123 45 67 / 68).
candidate = trimAfterFirstMatch(PhoneNumberUtil.SECOND_NUMBER_START_PATTERN, candidate);
// Regular expression of characters typically used to start a second phone number for the purposes
// of parsing. This allows us to strip off parts of the number that are actually the start of
// another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this
// actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second
// extension so that the first number is parsed correctly.
//
// Matches a slash (\ or /) followed by a space followed by an `x`.
//
const SECOND_NUMBER_START_PATTERN = /[\\/] *x/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants