Регулярное выражение для переформатирования номера телефона в США в Javascript

Я хочу переформатировать (заменить, не проверять - есть много ссылок для проверки) номер телефона для отображения в Javascript. Вот пример некоторых данных:

  • 123 4567890
  • (123) 456-7890
  • (123) 456-7890
  • 123 456 7890
  • 123.456.7890
  • (пусто / пусто)
  • 1234567890

Есть ли простой способ использования регулярное выражение для этого? Я ищу лучший способ сделать это. Есть ли лучший способ?

Я хочу переформатировать число в следующее: (123) 456-7890

69
задан Matt K 29 August 2016 в 13:53
поделиться

1 ответ

взгляды назад

Берут последние цифры только (до 10) игнорирование сначала "1".

function formatUSNumber(entry = '') {
  const match = entry
    .replace(/\D+/g, '').replace(/^1/, '')
    .match(/([^\d]*\d[^\d]*){1,10}$/)[0]
  const part1 = match.length > 2 ? `(${match.substring(0,3)})` : match
  const part2 = match.length > 3 ? ` ${match.substring(3, 6)}` : ''
  const part3 = match.length > 6 ? `-${match.substring(6, 10)}` : ''    
  return `${part1}${part2}${part3}`
}

вход в качестве примера / вывод как Вы тип

formatUSNumber('+1333')
// (333)

formatUSNumber('333')
// (333)

formatUSNumber('333444')
// (333) 444

formatUSNumber('3334445555')
// (333) 444-5555
0
ответ дан 24 November 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: