Joannes
@Joannes
html, css, js, angular, bootstrap

Как отфильтровать строку с номерами телефонов?

Всем привет.
У меня есть переменная которая берет с базы инфу с телефоном фирмы.
Дело в том что этот инпут в который пишут номер телефона имеет тип текст и в итоге получается, что многие пишут туда разные знаки разделения телефонов и т.д. в итоге к примеру мы получаем во ттакое значение
(777) 65-580, 79-548
ну или оно может быть и таким
000 00 / 00(000)000000, 000000
в итоге у нас тут уже 3 номера один из них с кодом
Задача вывести ссылку с каждым номером отдельно.
Прошу с примером, т.к. логика работы понятно, не могу все прописать правильно. Получается куча лишнего кода у меня -(
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 2
AppFA
@AppFA
Frontend developer at Yandex
Спроектируйте для начала лучше нормальную форму, если в форме предусмотрено несколько номеров - делайте несколько инпутов, так же для таких инпутов сразу добавьте маску для заполнения. В итоге вам не нужно будет разбирать не понятные номера да и с такими данными легче работать будет в будущем.
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Надо знать специфику ваших данных.

Гипотеза: все номера можно правильно понять лишь по числу цифр в них:
+7 (495) 555-55-55
555-5555
8-495-5555555
(495) 555 55 55

Это всё один и тот же номер. Чтобы его правильно вывести, надо:
  1. отбросить все знаки, кроме цифр;
  2. отбросить, при наличии, "8" в начале при числе цифр = 11;
  3. дописать в начале +7 (495) при необходимости;


Постройте код с такой гипотезой и посмотрите, какие номера не вписались в неё и почему. Скорректируйте гипотезу, снова прогоните все данные.

Заметил, что у вас может быть несколько номеров в одной строке, с префиксом указанным лишь перед первым. Тогда нужно сначала ещё отладить этап, приводящий телефоны к формату один-номер-на-в-строке. Запоминать префикс, запятая – разделитель строк.

Муторно, но только так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы