Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, вот вариант регулярного выражения для телефонного номера в виде +7 (495) 111-11-11: ^\+\d{1,2}\s+?\(\d{3,5}\)\s+?\d{1,3}-\d{2}-\d{2}$ но телефонные номера бывают разных видов например, бывают такие варианты комбинаций (ххх)ххх-хх-хх (ххх)ххх-хххх (хххх)хх-хххх (хххх)хххххх (ххх)ххххххх ххх-хх-хх ххх-хххх +хх(ххх)ххх-хх-хх +хх(ххх)ххх-хххх +хх(ххх)ххххххх помогите составить одно регулярное выражение для такого вида телефонов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 23:15 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
Alexei772, можно огласить исходную задачу? От задачи зависит и способ решения. В ряде случаев достаточно выкинуть все не цифры и проверить количество оставшихся символов, так как с точки зрения чистой телефонии все эти скобки и дефисы не имеют вообще никакого значения. А иногда требуется строгое соблюдение правил - тогда номер нужно тщательно анализировать, включая коды страны и сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2014, 23:30 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
vkle, я загружаю страницу и делаю поиск по странице с целью найти телефонные номера... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 00:33 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
Alexei772, В первом приближении довольно просто. Убрать всё кроме цифр и пробелов (точки, запятые, плюсы и еще кое-что тоже оставить придется). Далее найти слова длиной 6 и более символов. Однако, в Ваши схемы (как и в мой вариант решения) не вписывается вид вроде "+7 987 654 1122" или "+7 (987) 654 1122" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 00:51 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
Второе приближение - убрать все символы, кроме алфавитно-цифровых. Искать последовательности цифр длиной 5,6,7,10 и 11. Дополнительно при длине 11 можно проверить первый символ найденного фрагмента на 7 и 8. При длине 10 и 11 можно проверить подстроку начиная с 1 и 2 символа, соответственно, на наличие в таблице междугородних кодов российских городов, а также специальных кодов (например, 800) и кодов операторов связи без географической привязки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 01:00 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
хех. так вот то что вы говорите я хорошо понимаю... :) а вот в практике написать не могу можете помочь?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 13:48 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
Alexei772, Задача не тривиальна, как на первый взгляд кажется. В том смысле, что одной регуляркой весьма проблемно охватить весь спектр вариантов написания номеров телефонов. Не, напихать все варианты шаблонов не представляет проблем, будет работать от этого медленнее, да и только. А в том смысле, что данные для парсинга сперва подготовить желательно, убрать все, что гарантировано не имеет отношения к искомому (слова, состоящие целиком из букв, например). В оставшемся уже разбирать, является (или может ли являться) это номером телефона или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 14:14 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
Во-первых, Вам нужно бы определится с типом рег-экспа. Эт я занудничаю) Вот сервис http://regex101.com для тестов думаю, посидев часок - составите нужный :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 15:11 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
b10s, ну, и я бы рекомендовал использовать не одно универсальное и громоздкое выражение, а несколько. разбить на классы аля с кодом и без код, со скобочками и без и т.д. и выбирать. иначе получится такая каша, что мама не горюй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 15:25 |
|
||
|
REGEXP русский телефонный номер
|
|||
|---|---|---|---|
|
#18+
Alexei772, а зачем нам-то думать о возможных формах написания телефонов? придумывай шаблоны для этих форм сам ( как ты собсно и начал делать), а генератор РВ ниже: ( извиняюсь, но написал не на php, а на приличном языке ;) Код: perl 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. На выходе получилось вот что: Код: html 1. 2. 3. 4. 5. 6. 7. видно, что телефон +7(495)187-11-55 полностью не нашёлся по причине отсутствия шаблона +x(xxx)xxx-xx-xx, поэтому последний нужно просто добавить в список шаблонов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2014, 18:12 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38580154&tid=1462983]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 301ms |
| total: | 412ms |

| 0 / 0 |
