RegEXP на номера телефонов
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RegEXP на номера телефонов - 2009-12-14 19:06:12.176666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Прошу помочь составить регэксп на номера телефонов в международном формате, например +123(45)6789012, +123-45-6789-01-2, +123456789012, +123 45 678-90-12 и т.п. Аналогично делает skype toolbar для IE и FF. Нагуглил это: http://regexlib.com/Search.aspx?k=&c=7&m=-1&ps=20 , но ничего дельного там не нашёл. Начал с такого: \+\d{1,3}\x28\d{2}\x29\d{7} Для проверки использую Это
|
|
|
RE: RegEXP на номера телефонов - 2009-12-14 19:11:06.133333
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
один рег - нерационально удали все НЕчисла, дальше делай что нужно
|
|
|
RE: RegEXP на номера телефонов - 2009-12-14 19:26:03.050000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Мне на странице надо разметку всунуть вокруг номеров. Удалять - долго и не нужно. Тут или один тяжёлый регэксп или много мелких.
|
|
|
RE: RegEXP на номера телефонов - 2009-12-14 20:05:36.650000
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
ну если нужно проверить номер или нет false/true то как то так #\+[\d\-\)\(\s]{12,14}# универсальный рег тут составить невозможно если только дашь чёткую маску всех возможных вариантов quote:
Удалять - долго выбрал всё по предидущей реге поудалял/проверил вставил в рамку что надо
|
|
|
RE: RegEXP на номера телефонов - 2009-12-14 20:35:10.856666
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
затесть #\+\d(?:(?<=[\d\-\s\(\)])\d|[\-\s\)\(](?=\d)){11,16}(?=(?:\s|$))# {11,16} - минимальная/максимальная длина со всеми знаками без первого числа(того что после плюса)
|
|
|
RE: RegEXP на номера телефонов - 2009-12-14 22:42:56.486666
|
|
|
tеstеr
Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
|
1. Сначала идёт + (он должен быть всегда) - [+]. 2. Далее идёт 3 цифры, они должны быть всегда - [0-9]{3}. 3. Далее идёт 2 цифры, окружённые разделителями класса 1 - ([(][0-9]{2}[)])|([-][0-9]{2}[-])|([ ][0-9]{2}[ ])|([0-9]{2}) Разделители класса 1 = пара проделов, пара скобок, пара минусов, отсутвие разделителей. 4. Далее идёт 7 цифр между которыми может быть 6 разделителей класса 2 - ([ -]?[0-9]){7} Разделитель класса 2 = пробел, тире, отсутствие разделителя. И того получаем регулярно выражение: [+] [0-9]{3}([(][0-9]{2}[)])|([-][0-9]{2}[-])|([ ][0-9]{2}[ ])|([0-9]{2})([ -]?[0-9]){7} У него есть недостаток. Оно пропустит такие номера как +123-45–1234567 +123(45)-1234567 +123 45 1234567 Но в целом оно сработает.
|
|
|
RE: RegEXP на номера телефонов - 2009-12-15 12:02:21.126666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
http://rsdn.ru/forum/dynamic/3638031.1.aspx В общем мы подумали и решили, что будет массив регэкспов. Мы пару штук забьём, а если кастомеру будет нужно - он пришлёт нам шаблоны и мы остальное довинтим. Спасибо участникам обсуждения.
|
|
|
RE: RegEXP на номера телефонов - 2009-12-15 12:18:06.563333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
quote:
ORIGINAL: Smelo затесть #\+\d(?:(?<=[\d\-\s\(\)])\d|[\-\s\)\(](?=\d)){11,16}(?=(?:\s|$))# {11,16} - минимальная/максимальная длина со всеми знаками без первого числа(того что после плюса) Не компилит :)…
|
|
|
RE: RegEXP на номера телефонов - 2009-12-15 12:39:53.890000
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
это POSIX в пхп работает print preg_match("#\+\d(?:(?<=[\d\-\s\(\)])\d|[\-\s\)\(](?=\d)){11,16}(?=(?:\s|$))#","dfgdfg dfgd fg +123-45-6789-01-2 fsdfsdfsdf dgdf gdf gdfg ")
|
|
|
RE: RegEXP на номера телефонов - 2009-12-15 12:54:19.240000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Всё равно допиливать надо =). Код может быть от 1 до 3 цифр, а не ровно 3. п.с. причём тут posix?
|
|
|
RE: RegEXP на номера телефонов - 2009-12-15 13:47:23.696666
|
|
|
Smelo
Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
|
quote:
Всё равно допиливать надо =). приведи все возможные варианты номеров quote:
Код может быть от 1 до 3 цифр, а не ровно 3. эта не учитывает код она смотрит перед каждой цифрой - либо другую цифру либо тире либо пробел либо скобки и ограничивает набор по длине quote:
п.с. причём тут posix? всмысле pcre =) ошибся
|
|
|
RE: RegEXP на номера телефонов - 2009-12-15 19:12:57.820000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
http://www.linux.org.ru/view-message.jsp?msgid=3556034 почитай здесь комментарии
|
|
|
RE: RegEXP на номера телефонов - 2009-12-15 19:37:29.486666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Да мы сами к этому пришли. Пока - просто перебор массивом регэкспов (для нескольких шаблонов). Попозже - свой парсер.
|
|
|
|
|