Проверка телефонов по базе

Автор alexbrok, Листопада 01, 2016, 06:07:35 PM

« попередня тема - наступна тема »

0 Користувачів і 2 Гостей дивляться цю тему.

alexbrok

Есть функция проверки телефонов при копировании в буфер обмена. При копировании любой цифры эта функция срабатывает и выдает список телефонов где упоминается эта цифра.
Что-бы это упорядочить, я так понимаю, есть в настройках параметров "Образец поиска телефонов в тексте". Как должен выглядеть этот образец, что-бы поиск реагировал только на № телефонов? Например: о5о1111111, +380501111111, 050-111-11-11

Akella

#1
Можно попробовать что-то из этого
https://makeit-team.com/forum/index.php/topic,49.0.html

Akella

например,
Код Select
\d{1,}[\d-)* ]{5,15}\d+?

5 - минимальной кол-во символов
15 - максимальное кол-во символов
символы - это цифры и плюс знаки, их разделяющие: пробел, тире, скобка, звездочка

alexbrok

#3
Цитата: Akella від Листопада 01, 2016, 06:21:57 PM5 - минимальной кол-во символов
15 - максимальное кол-во символов
символы - это цифры и плюс знаки, их разделяющие: пробел, тире, скобка, звездочка
Эти данные заложены в упомянутом коде? расшифровки что за что отвечает нигде нет на сайте?

Akella

Погуглите про регулярные выражения, но там всё сложно.
Легче обозначить условия. Попробую помочь.

alexbrok

#5
Примеры используемых номеров такие 0501111111(исправил), +380501111111, 1111111, разделители: пробел, тире-дефиз, скобки (050). Если возможно такой шаблон сделать, то это охватит практически все варианты.

Akella

#6
050 не вижу в первом телефоне
у Вас же буква о, а не цифра 0
т.е. нужно учитывать ещё и букву о? Учитывать и кириллическую, и латиницу. Правильно?

Akella

вот такой шаблон, который будет учитывать латиницу и кириллицу (для буквы о)
Код Select
[\doо]{1,}[oо\d-)* ]{5,15}\d+?
это на вид буквы одинаковые, а для ПК - это совершенно два разных символа

alexbrok

нет, простите, это случайно скопировал буквы, там должны быть цыфры "ноль"

Akella

тогда в чем проблема?
я не понял

alexbrok

Цитата: Akella від Листопада 02, 2016, 06:12:51 PMтогда в чем проблема?
я не понял
если только цифры то следует использовать этот щаблон?: \d{1,}[\d-)* ]{5,15}\d+?

Akella

Я даже дал целую ссылку. Там можно выбрать, какой больше подходит Вам. Попробовать тот или иной шаблон.

А вот если ТОЛЬКО цифры безо всяких разделителей (тире, скобки, пробелы), то можно и это использовать:
Код Select
\d{7,12}
\d - это обозначение цифры
{7,12} - количество цифр, минимум 7 (например, городской номер), а максиму 12, т.е.полный мобильный: 380671234567

Akella

шаблон "\d{7,12}" без кавычек будет определять от 7 до 12 цифр включительно, идущих подряд:
380671234567
0671234567
7172312
0577471199

не будет определять любые другие сочетания цифр, если в наборе будет пробел, тире, скобка, буква и т.д., т.е. должны быть только цыфры
38(067)123-45-67 - не определит
067-123-45-67 - не определит

если будет вот такое: 067-1234567, то программа определит только то, что после тире, т.к. 1234567 - это 7 цифр, идущих подряд.

alexbrok

Цитата: alexbrok від Листопада 02, 2016, 02:48:24 PMПримеры используемых номеров такие 0501111111(исправил), +380501111111, 1111111, разделители: пробел, тире-дефиз, скобки (050). Если возможно такой шаблон сделать, то это охватит практически все варианты.
я имел ввиду для таких вариантов подойдет этот?:  \d{1,}[\d-)* ]{7,13}\d+?

Akella


SMF spam blocked by CleanTalk