Приведение номера телефона к одному формату

Тема в разделе "Решение проблем с использованием программы", создана пользователем cyoshi, 8 апр 2019.

  1. cyoshi

    cyoshi Member Пользователи

    Регистрация:
    4 апр 2019
    Сообщения:
    69
    Добрый день всем!
    Подскажите пожалуйста

    Сайт донор не имеет маски вывода номера телефон. в итоге все податели пишут его как хотят:
    вот примеры (по маске) какие я их получаю

    Х-ХХХ-ХХХ-ХХХХ (с ХХ-ХХ до ХХ-ХХ пн-пт)
    ХХХХХХХХХХХ (с ХХ-ХХ до ХХ-ХХ пн-пт)
    +Х ХХХ ХХХ ХХ ХХ звонить с Х:ХХ-ХХ:ХХ
    +Х ХХХ ХХХ ХХ ХХ звонить с Х:ХХ-ХХ:ХХ
    +Х ХХХ ХХХ ХХ ХХ звонить с Х:ХХ-ХХ:ХХ
    Х (ХХХХХ) Х-ХХ-ХХ , Х(ХХХ) ХХХ-ХХ-ХХ
    Х (ХХХХХ) Х-ХХ-ХХ , Х(ХХХ) ХХХ-ХХ-ХХ
    Х (ХХХХХ) Х-ХХ-ХХ , Х(ХХХ) ХХХ-ХХ-ХХ
    Х (ХХХХХ) Х-ХХ-ХХ , Х(ХХХ) ХХХ-ХХ-ХХ
    Х-ХХХ-ХХХ-ХХ-ХХ, Х(ХХХХХ) Х ХХ ХХ
    Х-ХХХ-ХХХ-ХХ-ХХ, Х(ХХХХХ) Х ХХ ХХ
    Х-ХХХ-ХХХ-ХХ-ХХ, Х(ХХХХХ) Х ХХ ХХ
    Х-ХХХ-ХХХ-ХХ-ХХ, Х(ХХХХХ) Х ХХ ХХ
    Х (ХХХ) ХХХ ХХ ХХ, Х(ХХХХ) Х ХХ ХХ
    ХХХХХ-ХХ-ХХ-ХХ , Х-ХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХХ)Х-ХХ-ХХ,ХХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХХ)Х-ХХ-ХХ,ХХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХХ)Х-ХХ-ХХ,ХХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХХ)Х-ХХ-ХХ,ХХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХХ)Х-ХХ-ХХ,ХХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХХ)Х-ХХ-ХХ,ХХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХ)ХХ-ХХ-ХХ ХХХ-ХХХ-ХХ-ХХ
    Х(ХХХХ)ХХ-ХХ-ХХ ХХХ-ХХХ-ХХ-ХХ
    (ХХХХХ)ХХХХХ, Х ХХХ ХХХ ХХ ХХ
    ХХХХХХХХХХХ ХХХХ ХХХ ХХ ХХ
    ХХХХХХХХХХХ ХХХХ ХХХ ХХ ХХ
    +ХХХХХХХХХХХ ; +ХХХХХХХХХХХ
    +ХХХХХХХХХХХ ; +ХХХХХХХХХХХ
    +ХХХХХХХХХХХ ; +ХХХХХХХХХХХ
    +ХХХХХХХХХХХ ; +ХХХХХХХХХХХ
    Х(ХХХХХ)Х-ХХ-ХХ доб. ХХХХХ
    Х(ХХХХХ)Х-ХХ-ХХ доб. ХХХХХ
    97-ХХ-ХХ; Х-ХХХ-ХХХ-ХХ-ХХ
    ХХ-ХХ-ХХ(ХХ),+ХХХХХХХХХХХ
    +Х(ХХХХХ) Х-ХХ-ХХ,Х-ХХ-ХХ
    Х-ХХ-ХХ, Х ХХХ ХХХ ХХ ХХ
    (Х-ХХХ-ХХ) Х-ХХ-ХХ
    98-ХХ-ХХ 98-ХХ-ХХ
    ХХ-ХХ-ХХ ХХ-ХХ-ХХ
    Х ХХХ ХХХ- ХХ -ХХ
    Х (ХХХХ) ХХ-ХХ-ХХ
    Х (ХХХХ) ХХ-ХХ-ХХ
    Х (ХХХХ) ХХ-ХХ-ХХ
    Х (ХХХХ) ХХ-ХХ-ХХ
    +Х(ХХХ) ХХХ-ХХ-ХХ

    Я что подучал:
    сначала я чищу все телефонов от лишних знаков чтобы остались только цифры

    |
    ,|
    +|
    -|
    ;|
    :|
    (|
    )|

    а потом отрезать стандартное количество макросом [COPY]

    только вот есть телефоны у меня которые состоят из 6 чисел
    они начинаются на цифры 97 и 98

    и наконец так вопрос

    я подумал что можно написать макрос развилку
    если первый цифры 97 или 98 то отрезай 6 символов, если нет то отрезай 11

    вот что наваял и что то ничего не получается

    [VAR]
    [SET:dig][COPY:1|2]<CD_GRAN_14!>[/COPY][/SET]
    [SET:len][IF1][VAR:dig]=98[THEN]6[ELSE]11[/IF1][/SET]
    [/VAR]
    [COPY:1|[VAR:len]]<CD_GRAN_14!>[/COPY]

    ====
    подскажите пожалуйста где я ошибся
     
    Последнее редактирование: 8 апр 2019
  2. inotoxic

    inotoxic Well-Known Member Пользователи

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    Я бы, для приведенного списка масок телефонных номеров - составил бы regex.
    Далее через поиск из замену - извлекать номера телефонов
     
    cyoshi нравится это.
  3. cyoshi

    cyoshi Member Пользователи

    Регистрация:
    4 апр 2019
    Сообщения:
    69
    я пользуюсь программой совсем недавно. подскажите, пожалуйста, что такое regex? (не нашел в справке)
     
  4. inotoxic

    inotoxic Well-Known Member Пользователи

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    regex - регулярные выражения

    [​IMG]

    Для использования рег.выражений в блоке поиска-замены необходимо в начале строки замены прописать макрос re: далее само выражение
    на примере скриншота
    - текст рег. выражения (\D+) - найти все что НЕ цифра
    - знак | - разделение левой и правой части строки замены. С правой стороны текст НА который меняем (в данном случае на пустоту)
     
    seven и cyoshi нравится это.
  5. cyoshi

    cyoshi Member Пользователи

    Регистрация:
    4 апр 2019
    Сообщения:
    69
    по поводу чистки от мусора - очень изящно!!!
    я это сделал более топорно... но чистка от других символов у меня получилась

    а вот как сделать развилку чтобы обрезалось нужное количество символов в зависимости от начала номера?
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Попробуйте макрос [EXTRACTPHONES].
     
    cyoshi нравится это.
  7. cyoshi

    cyoshi Member Пользователи

    Регистрация:
    4 апр 2019
    Сообщения:
    69
    попробую
    Спасибо!

    -----
    а в этой конструкции из макросов есть ошибки?

    [VAR]
    [SET:dig][COPY:1|2]<CD_GRAN_14!>[/COPY][/SET]
    [SET:len][IF1][VAR:dig]=98[THEN]6[ELSE]11[/IF1][/SET]
    [/VAR]
    [COPY:1|[VAR:len]]<CD_GRAN_14!>[/COPY]
     

Поделиться этой страницей