parsePreCandidate.js 947 B

12345678910111213141516171819
  1. import { trimAfterFirstMatch } from './util.js'
  2. // Regular expression of characters typically used to start a second phone number for the purposes
  3. // of parsing. This allows us to strip off parts of the number that are actually the start of
  4. // another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this
  5. // actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second
  6. // extension so that the first number is parsed correctly.
  7. //
  8. // Matches a slash (\ or /) followed by a space followed by an `x`.
  9. //
  10. const SECOND_NUMBER_START_PATTERN = /[\\/] *x/
  11. export default function parsePreCandidate(candidate)
  12. {
  13. // Check for extra numbers at the end.
  14. // TODO: This is the place to start when trying to support extraction of multiple phone number
  15. // from split notations (+41 79 123 45 67 / 68).
  16. return trimAfterFirstMatch(SECOND_NUMBER_START_PATTERN, candidate)
  17. }