Правильное написание сотового номера телефона

Казалось бы, что сложного в написании телефонного номера? Сложного, действительно, ничего нет, но есть нюансы.  Правильно написанный телефонный номер увеличит шансы, что клиент дозвониться до вашей компании. Ваш текст, сайт или буклет будет выглядеть более профессионально, если телефонный номер будет написан правильно.

С чего начинать номер: +7 или 8?

Запись российских номеров правильно начинать с кода +7. Это международный код России. Если номер указан с префиксом +7, то по этому номеру к вам могут дозвониться из-за границы. А префикс 8 — это атавизм, оставшийся со времён СССР. Это был код выхода на междугороднюю связь внутри страны. «Восьмёрка» и сейчас продолжает работать на стационарных телефонах, но если вы хотите увеличить шансы, чтобы к вам дозвонились, указывайте в телефонном номере только код +7.

Как правильно писать телефонные номера

Как группировать цифры номера? Использовать пробелы или дефис?

Цифры в телефонном номере группируются по две справа налево. Если в первой группе цифр телефонного номера одна цифра, ее допустимо объединять в одну группу со следующими двумя цифрами. Например: 591-85-60; 445-02.  Телефонные номера с удачным расположением цифр допускается оформлять иначе: 222-8-222.  Группы цифр отделяются друг от друга дефисами, но допускается отделение пробелами.

Нужны ли скобки?

Строгих правил по поводу скобок нет. Здесь можно руководствоваться тем, что в русском языке в скобки заключается дополнительная информация, поясняющая основную. Код города можно считать поясняющей информацией, ведь часто можно обойтись и без кода, если номер предназначен для использования только внутри города. А вот для мобильных номеров код оператора совершенно необходим, так как без этого кода дозвониться не удастся.

Мобильные номера: +7 922 670-45-10

Городские номера: +7 (351) 765-43-21, допустимо: (351) 765-43-21 или 765-43-21.

В Москве существует два городских телефонных кода 495 и 499, поэтому правильным будет указывать московские городские телефонные номера так же, как и мобильные номера, то есть без скобок: +7 495 555-50-50, +7 499 444-45-50.

Как правильно писать телефонные номераКак правильно писать телефонные номераКак правильно писать телефонные номераКак правильно писать телефонные номераКак правильно писать телефонные номера (9 голосов, оценка: 4,33 из 5)
Как правильно писать телефонные номера Загрузка…

Блог

Формат телефонных номеров

Читайте наш новый материал о форматах телефонных номеров при отправке рассылок из личного кабинета, API или через интеграции с популярными CMS/CRM-системами.

Достаточно часто наши клиенты и партнеры сталкиваются с некоторыми сложностями при отправке СМС-сообщений из-за того, что в их базах для рассылок используются не совсем канонические номера телефонов. Для того, чтобы СМС-сообщение было корректно отправлено получателю, наша система должна распознать:

  1. Код страны (например, +7 — это Россия)
  2. Def-код (например, 926, 903 и т.п.)
  3. Номер абонента (например, в России это последние 7 цифр номера)

Несмотря на кажущуюся простоту этого вопроса, на практике применяется огромное количество самых разных вариаций написания телефонных номеров, немалая часть из которых приводит к невозможности отправить сообщения, а некоторые форматы так напрямую приводят к самым неприятным моментам, когда СМС ошибочно отправляется в другую страну (и другому абоненту, соответственно) и при этом неверно тарифицируется.

На примере номера +79001234567 проиллюстрируем несколько примеров многообразия форматов, которые мы регулярно встречаем на практике:

  1. «Без плюса» (пишут «79001234567»)
  2. «Без семерки» (пишут («9001234567»)
  3. «Через восьмерку» (пишут «89001234567»)
  4. «Без def-кода (пишут «мег. 1234567»)
  5. «Скобки» (пишут «8(900)1234567»). Обычно может сочетаться с другими форматами, например, «+7 (900) 123-45-67»
  6. «Пробелы» (пишут «8 900 123 45 67»). Обычно может сочетаться с другими форматами, например, «+7 (900) 123-45-67»
  7. «Дефисы» (пишут «8-900-123-45-67»). Обычно может сочетаться с другими форматами, например, «+7 (900) 123-45-67»
  8. «Точки» (пишут «8.900.123.45.67)». Обычно может сочетаться с другими форматами, например, «900.123.45.67»

К этому стоит добавить также:

  1. Явно ошибочные номера телефонов, например, слишком длинные или слишком короткие
  2. Немобильные номера телефонов, например, городские
  3. Нероссийские номера телефонов, которые могут отличаться по длине от российских.

Проблема может усугубляться тем, что ряд систем имеют маски номеров телефонов, который существенным образом отличаются от канонических. Например, многие сталкивались с тем, что при введении номера телефона автоматически определяется страна, а сам номер может быть визуально представлен в любом из вышеперечисленных форматов.

Наша компания, разумеется, всеми силами пытается облегчить жизнь клиентов и партнеров и:

  1. Автоматически отфильтровывает (=удаляет) из баз некорректные номера (длинные, короткие, немобильные и т.п.)
  2. Автоматически приводит номера к каноническому формату, убирая скобки, дефисы и т.п.
  3. Автоматически распознает номера телефонов других стран и т.п.

Единственная оговорка: при отправке СМС через API требуется очень жесткий канонический формат номера телефона а виде +79001234567 или 79001234567, так как запросы идут напрямую на СМС-шлюзы операторов связи.

1.Резюме:

  1. Рекомендуем всегда придерживаться канонического формата номера телефона (+79001234567)
  2. Если Вы отправляете СМС через личный кабинет или интеграции, то наша система всю работу по нормализации номеров сделает за Вас автоматически
  3. Если Вы отправляете СМС через API, то требуется отправлять номера в каноническом формате.

March 27 2009, 12:28

Category:

  • Дизайн
  • Cancel

Как правильно писать телефонные номера

Часто приходится слышать всякие глупости про телефонные номера. Разберемся, как их правильно писать.

Обычно телефонная надпись состоит из двух частей: подписи и самого номера. Например:

telephone-number1

Сначала разберемся со словом.

Подпись

А нужно ли вообще

как-то

подписывать номер, ведь и так понятно, что это номер телефона?

Нет, не понятно.

Это может быть факс, номер аськи, кредитки или бог знает чего еще. У Стива Круга целая книга называется: «Не заставляйте меня думать». Так вот, не заставляйте меня думать. Всего три буквы избавят читателя от лишних вопросов.

Как сокращать: т., тел.?

Общепринято сокращение тел. При минималистическом дизайне допустимо написать т. Часто отлично смотрится слово телефон целиком.

Можно сразу указывать тип телефона: моб., м., факс.

По правилам русского языка после сокращения обязательно нужно ставить точку. После самого слова — двоеточие, после двоеточия — пробел.

Возможно также использование иконок, но часто это невозможно по техническим причинам или неуместно, да и выглядит это, как правило, плохо.

telephone-numbers

Номер

Телефонные номера следует различать не только по типу (городской, мобильный), но и по назначению (для местных звонков, междугородних, международных).

Телефонный номер всегда состоит из трех частей: префикс страны, код города, сам номер.

Сам номер

По правилам русского языка сам номер нужно писать через дефисы, разбивая цифры таким образом:

123-45-6712-34-561-23-4512-34

Исключение может быть сделано только для «красивых номеров»:

23-777-19

333-555-1

Код города

Код пишется в скобках перед телефоном, не разбиваясь дефисом, но обязательно с пробелом между кодом и номером:

(12345) 1-23-45

Код города необходим, если мы предполагаем, что будут звонить из других городов.

Префикс страны

Если предполагается, что по телефону могут звонить люди из другой страны, тогда надо добавить код страны со знаком выхода на международную линию (+7).

При этом код не будет писаться в скобках (т.к. его нельзя опустить).

Правильно:

+7 123 

123-45-67

Мобильные телефоны надо писать так же, как и телефон для международной записи:

+7 916 123-45-67

Никаких скобок, так как из телефона нельзя ни при каких обстоятельствах выкинуть часть.

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

Несколько телефонов

Если телефонов несколько, то не надо каждый раз повторять префикс страны и код города:

(495) 123-45-67, 987-65-43, 123-45-67

Факс

В факсе обязательно писать код города.

Для большинства самой уместной записью является:

Тел.: (123) 123-45-67

Про историю записи телефонных номеров можно почитать у Артемия Лебедева в Ководстве.

Originally published at Блог Ильи Синельникова. You can comment here or there.

Как ввести мобильный номер?

Если вам необходимо позвонить на, так называемый, прямой мобильный номер, принадлежащий любому оператору мобильной связи России, то наберите номер в формате 8 (код города) семизначный номер абонента или +7 (код города) семизначный номер абонента. Если вам необходимо на мобильном телефоне набрать добавочный номер, то, набрав основной номер, дождитесь сообщения системы и после него наберите дополнительный.

Мобильный с федеральным номером Код России (7), код оператора (9XX), номер абонента. Например: 79221110500. Россия Код России (7), код города, номер абонента. Например: 74232497777 (Владивосток).

  1. Как правильно писать +7 или 8?
  2. Как правильно пишется мобильный номер?
  3. Какой правильный формат номера мобильного телефона?
  4. Как принято писать номер телефона?
  5. Как набрать мобильный номер в России?
  6. Как пишется номер?
  7. Сколько цифр в телефонном номере?
  8. Как правильно указать номер телефона на визитке?
  9. Как правильно писать добавочный номер?
  10. Как ввести номер в формате?
  11. Что значит ввести корректный номер телефона?
  12. Как писать российский номер телефона?
  13. Как ввести номер через +7?
  14. Какой у меня номер?
  15. Что значит 8 перед номером телефона?
  16. Как набирать номера с 8?
  17. Что означает 810 при наборе номера?
  18. Как правильно пишется номер дома с буквой?
  19. Как понять недопустимый номер телефона?
  20. Зачем буквы на цифрах телефона?
  21. Какой формат номеров в России?
  22. Как писать номер телефона со скобками?
  23. Как расшифровать номер телефона?
  24. Что такое +7 В номере телефона?
  25. Почему у России код 7?
  26. Что набирать вместо +7?
  27. Что означают цифры в скобках в номере телефона?
  28. Как правильно писать несколько номеров?
  29. Что значит ошибка формата мобильного телефона?
  30. Какой формат телефона?
  31. Как правильно пишется число 7?
  32. Как правильно говорить 7?
  33. Как правильно написать слово 7?
  34. Как правильно писать число 8?

Как правильно писать +7 или 8?

Если вы находитесь в России, то разницы действительно нет, а вот если оказались за ее пределами и хотите позвонить на родину, важно набрать в начале номера +7. «+» обозначает международный формат, а «7» — код России и Казахстана.

Как правильно пишется мобильный номер?

Номера телефонов принято писать, отделяя дефисом по две цифры справа налево, например: 2-99-85-90; 2-95. В номерах телефонов с числом цифр больше шести отделяют крайнюю левую группу в три цифры: 990-00-00.

Какой правильный формат номера мобильного телефона?

Для звонка на все номера, в том числе местные, набирайте номер в международном формате: + <код страны><код сети или города><номер телефона>.

Как принято писать номер телефона?

Номера телефонов принято писать без знака номера, отделяя дефисом или пробелом по две цифры справа налево. Напр.: 2-99-85-90; 2-95; 2 99 85 90. Если в первой группе цифр телефонного номера одна цифра, ее допустимо объединять в одну группу со следующими двумя цифрами. Напр.: 299-85-90, 299 85 90, 295.

Как набрать мобильный номер в России?

Россия Код России (7), код города, номер абонента. Например: 74232497777 (Владивосток). Альтернативные операторы связи России, имеющие собственные коды Код России (7), код оператора, номер абонента. Наприме)р: 7501XXXXXXX.

Как пишется номер?

В русской типографике для обозначения порядкового числа предмета (при условии обязательного указания числового значения) в ряду других однородных — номера — употребляется символ №. В США номер обозначают знаком решётки — #.

Сколько цифр в телефонном номере?

В настоящее время в России полный телефонный номер состоит из 10 цифр. В случае, если номер географический, то, как правило, первые три цифры — код региона, далее идёт код населённого пункта (кроме нескольких крупных городов с 7-значным городским номером) и собственно городской номер.

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

Оформление номера телефона. Мобильные имеют формат «8 911 123 44 55», а городские — «111 22 33». В скобках пишутся только необязательные для набора цифры (код города, например);

Как правильно писать добавочный номер?

В качестве него используется запятая. Чтобы поставить ее при наборе номера с мобильного телефона, нужно нажать и удержать некоторое время кнопку «*». После появления запятой набрать добавочный номер.

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

Итак, чтобы записать номер в международном формате, следует набрать 11 цифр, не считая знака плюсика. Эта комбинация используется для звонков из зарубежных стран в Россию, внутри страны можно звонить, набирая вместо +7 восьмерку.

Что значит ввести корректный номер телефона?

Это значит, что допустимо вводить только номера, начинающиеся на 375 и продолжающиеся кодом 24, 25, 29, 33, 44. Если вы видите надпись «Введите корректный номер телефона», то проверьте, пожалуйста, верный ли код мобильного оператора вы указали.

Как писать российский номер телефона?

Запись российских номеров правильно начинать с кода +7. Это международный код России. Если номер указан с префиксом +7, то по этому номеру к вам могут дозвониться из-за границы. А префикс 8 — это атавизм, оставшийся со времён СССР.

Как ввести номер через +7?

В путешествиях по России для совершения исходящих вызовов набирайте номер в международном формате: +7 номер мобильного телефона или 8 номер мобильного телефона; +7 (код города) номер городского телефона или 8 (код города) номер городского телефона.

Какой у меня номер?

Способ для Android

«Настройки» — «О телефоне» — «Статус» — «Статус SIM» — «Мой номер телефона».

Что значит 8 перед номером телефона?

«8» — внутренний код, который предназначен для набора российских номеров. Он существует со времен Советского Союза. В наши дни его редко используют, потому что отдают предпочтение «+7», однако маркировка все же встречается в служебных телефонах горячий линий банков и других финансовых компаний.

Как набирать номера с 8?

Междугородний звонок начинается с цифры 8, затем идет код города. Например, Москва — 499 или 495, Санкт-Петербург — 812.

Что означает 810 при наборе номера?

Например, в некоторых странах СНГ (Белоруссия, Казахстан, Таджикистан, Туркменистан, Узбекистан) префиксом является «8 ~ 10» (символом ~ обозначена пауза для ожидания гудка, впрочем, на современных цифровых АТС можно не ждать гудка, а сразу набирать номер, начинающихся на 810).

Как правильно пишется номер дома с буквой?

(d) номера домов и буквенные индексы пишутся слитно, номера строений, корпусов пишутся через пробел, буквы русские, буква цифрового индекса заглавная, остальные буквы строчные.

Как понять недопустимый номер телефона?

Если система пишет, что недопустимый номер-это значит, что все же Вы вводите его неверно. Проверьте еще раз формат. Правильно ли Вы ввели код? Скорее всего в телефоне у Вас этот номер сохранен в списке контактов правильно, поэтому проблем со звонком не возникает.

Зачем буквы на цифрах телефона?

Буквы по соседству с цифрами на клавиатуре телефона — явление не новое. Их наносили еще на советские дисковые телефонные аппараты. То, что на кнопках обычных мобильных телефонов нанесены не только цифры, но и буквы, никого не удивляет. Они, естественно, используются для набора текста.

Какой формат номеров в России?

Зачем нужны квадратные номера? В России приняты государственные регистрационные знаки прямоугольной формы. Ещё в 1993 году был принят ГОСТ, регламентирующий их размеры — 520х112 мм. Такие же таблички используются в большинстве европейских стран.

Как писать номер телефона со скобками?

В московских и мобильных номерах скобки не ставятся

В Москве, после введения дополнительного префикса 499, записывать код города в скобках уже будет некорректно. Поэтому московские номера следует писать без скобок: +7 495 765-43-21 или +7 499 765-43-21. В номерах мобильных телефонов все цифры обязательны к набору.

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

Каждый телефонный номер включает несколько элементов: префикс страны (+7, 8), код города или мобильного оператора (495, 812) и основной номер (222-33-44).

Что такое +7 В номере телефона?

Если вы находитесь в России, то разницы нет, а вот если оказались за ее пределами и хотите позвонить на родину, важно набрать в начале номера +7. Знак плюс обозначает международный формат, а просто цифра 7 — код России и Казахстана.

Почему у России код 7?

Код +7 использовался для телефонного плана нумерации СССР. Все бывшие республики, после его распада, за исключением России и Казахстана, перешли на новые коды стран. Абхазия, после своего отделения от Грузии, перешла на российские тел. коды: +7 840 (стационарная связь) и +7 940 (мобильная связь).

Что набирать вместо +7?

А если вы звоните со стационарного телефона, и там нет кнопки «+», попробуйте набрать вместо него «00». Но лучше заранее уточнить код выхода на международную связь в местной телефонной службе. Например, чтобы позвонить в Россию из США, нужно набрать 011 — 7 (код России) — код оператора — номер телефона.

Что означают цифры в скобках в номере телефона?

Вообще говоря, скобки означают, что содержащуюся внутри них часть номера можно не набирать.

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

Чельцовой указывается, что знак № набирают только перед рядом чисел, без постановки у каждого числа в числовом ряду. При этом ставится только один знак №. Правильно: № 123, 234, 435.

Что значит ошибка формата мобильного телефона?

Когда при оформлении заказа покупатель пишет в поле «Телефон» свой номер и допускает ошибку, под полем появляется надпись «Неверный формат». Ошибкой считается номер телефона, в котором количество символов не соответствует формату, заданному в настройках.

Какой формат телефона?

Формат номера телефона — правильный вид номера телефона, единый для всех абонентов. Российский номер состоит из нескольких частей: Префикс +7 (8). +7 — международный формат префикса России, который используется для звонков за рубежом.

Как правильно пишется число 7?

7 (число)

7

Семь

← 5 · 6 · 7 · 8 · 9 →

Разложение на множители

7 (простое)

Римская запись

VII

Как правильно говорить 7?

Неправильно говорить сем или семдесят, восем или восемдесят. Грамотно произносить: семь и семьдесят, восемь и восемьдесят и т.

Как правильно написать слово 7?

Правильное написание слова- седьмое(корень — седьм, окончание — ое, основа слова — седьм). Седьмое-это порядковое числительное. Проверочное слово-сЕмь.

Как правильно писать число 8?

8 — восемь

Посмотрите так же как пишутся прописью цифры 16, 4, 24, 547, 743, 451, 9283, 8922, 9707, 9935, 34327, 411, 67462, 371028, 958253.

Ответить

Как выглядит номер телефона на вашем сайте? Может быть так — 123-45-67 или так — 8 (351) 123-45-67. А вы никогда не задумывались, смогут ли клиенты из другого города или страны дозвониться до Вас? Скорее всего они просто не смогут правильно набрать Ваш номер.

Идея этой заметки у меня пришла совершенно случайно. Мне понадобилось найти телефоны официальных дилеров Nissan в Украине и Болгарии. Каково было мое удивление когда на большей части сайтов содержались неточные или не полные номера телефонов.

Номер в Болгарии должен выглядеть примерно так тел: (+359) 2 93760160. Сколько времени нужно потратить чтобы догадаться какие цифры набрать на телефоне, чтобы позвонить в «Нипон-Моторс» — Тел. шоурум: 02 / 919 8670.

А что в России? Мы привыкли с каких-то старых времен писать номера телефонов начиная с 8 (код города) …, но мы ни разу не задумывались, что 8 — это просто код выхода на междугороднюю связь, и к плану нумерации она не имеет никакого отношения. Поверьте, ни один иностранец не догадается сходу заменить нашу 8-ку на стандартный код страны +7.

В итоге, как правильно оформить номер телефона на сайте, чтобы все могли дозвониться? Самый простой способ — указать полный номер телефона с кодом страны и кодом города.

+7 (351) 240-04-40 — с такой формой телефонного номер 100% не возникнет проблем. Для компаний чья география реализации товаров и услуг лежит в пределах РФ, допустимо опустить код страны (351) 240-04-40.

А теперь проверьте, как написан номер телефона у Вас на визитке?

Мы привыкли записывать телефонный номер, начиная с восьмерки. Поэтому когда где-либо требуется записать или ввести на сайте номер телефона в международном формате, то сразу в голове масса вопросов.

Подробно рассказываем, как набрать номер телефона в международном формате, и откуда вообще взялся этот формат.

Российские номера сотовых телефонов в международном формате состоят из трех элементов:

  • +7 — международный код страны, Российской Федерации;
  • ХХХ — три цифры, обозначающих префикс. Эти три цифры определяют название сотового оператора и регион регистрации номера;
  • ХХХ-ХХ-ХХ — семь уникальных цифр, номер абонента, по которому также можно определить регион.

Итак, чтобы записать номер в международном формате, следует набрать 11 цифр, не считая знака плюсика. Эта комбинация используется для звонков из зарубежных стран в Россию, внутри страны можно звонить, набирая вместо +7 восьмерку. В книге контактов лучше сразу сохранять номера в международном формате, потому что зачастую звонки через восьмерку не проходят.

Номер «Мегафон» в международном формате имеет префиксы 920-929, 936 и 937. Номера МТС в международном формате отличаются префиксом 910-919, 980-989. Номера «Билайн» в международном формате легко узнать по префиксам 903-909, 961-968, 976.

Однако стоит учитывать, что номера в одном коде могут быть разделены регулятором между несколькими операторами. Это связано с тем, что номерной ресурс ограничен, и выделить всем операторам, а их зарегистрировано более ста, коды с необходимым количеством номеров, невозможно.

Строго говоря, любые российские сотовые номера сразу пишутся в международном формате, так как без кода страны и кода оператора позвонить по ним невозможно.

Важно знать, что телефонный код +7 Россия разделяет с Казахстаном и Абхазией. Другие республики после распада Союза перешли на собственные коды. Крым также использует российские коды +7-869 (местная связь в Севастополе), а сотовые номера Крыма в международном формате начинаются с комбинации +7978.

В международном формате можно набрать и любой городской (местный) номер. Если вам нужно позвонить, к примеру, в отель за рубежом, со стационарного телефона следует набрать 8-10-{код страны}-{код города}- номер абонента. А вот с сотового номера нужно набирать вместо 8-10 — плюс и код страны.

Содержание

  • Международный формат номеров США, Украины, Белоруссии
  • Теория появления международного формата номера
  • Резюме
  • Правила набора международного формата
  • Международный формат номера телефона Е164
  • Международный формат номеров мобильных телефонов в России
  • Правильное написание телефонных номеров. Взято с ebanners.ru

Международный формат номеров США, Украины, Белоруссии

Цифра +7 определяет принадлежность номера к российской телефонной сети. Для других стран зарезервированы иные коды. Американский сотовый номер выглядит так:

+1 {код страны} ХХХ {код штата или города} ХХХХ-ХХ-ХХ {номер абонента}.

Каждый штат США имеет свой префикс, а вот привязки номера телефона к оператору в США не существует. В одном штате может быть несколько вариаций префиксов.

Например, в Нью-Йорке используются коды 347, 212 и 646. В то же время, абонент с этим номером может переехать в какой угодно штат, роуминга внутри страны нет, так что по этим цифрам можно определить только, в каком штате номер был впервые зарегистрирован.

Также цифры, идущие после +1 в международном американском номере, позволяют определить, со стационарного или сотового номера вам звонят. К примеру, 212 код стационарной сети Нью-Йорка (но не в 100% случаев).

Как видим, американский номер в международном формате также включает 11 цифр. А вот украинский длиннее: здесь код соединения со страной состоит из трех цифр, +380. Украинские мобильные номера в международном формате выглядят так:

+380 {код страны} ХХ {код оператора} ХХХ-ХХ-ХХ {номер абонента}.

У каждого сотового оператора Украины, соответственно, свои коды:

  • 63 и 93 — коды оператора Lifecell;
  • 50, 66, 95, 99 — Vodafone;
  • 67, 68, 69, 96, 97, 98 — префиксы для звонков в сети Киевстар;
  • 91 — ТриМоб;
  • 92 — PEOPLEnet.

Белорусские сотовые телефоны в международном формате легко определить по начальным цифрам +375.

Хотя у Казахстана код страны совпадает с Россией, их номера определяются по префиксу: они имеют формат +7(6xx)xxx-xx-xx или +7(7xx)xxx-xx-xx. Префиксы российских сотовых операторов принадлежат исключительно диапазону (9хх).

Отметим, что на территории страны также действует нумерация с кодом начинающимся на восьмерку. Также, как в России, это специальные многоканальные номера. К примеру, 800 для бесплатных звонков с любого казахстанского номера.

Теория появления международного формата номера

Последовательность набора номера определяется телефонным планом нумерации — унифицированной системой, позволяющей пользователям сети отправлять и принимать звонки, а также определять звонящего (услуга определения номера включена во все тарифные планы сотовых операторов).

В мире существует два плана нумерации: открытый и закрытый. При первом местные вызовы можно совершать без национального номера (кода города), а при втором, то есть закрытом, необходимо набирать полный международный формат номера для звонка любого вида: местного, междугороднего, международного.

В основном страны применяют закрытый план нумерации, Москва сегодня полностью переведена на него. Отметим, что популярный термин “прямой номер” появился до того, как введен закрытый план. “Кривым”, на самом деле, является не номер с городским кодом, а тот, что можно набирать напрямую без кода города/оператора.

По планам Министерства коммуникаций и связи, к 2020 году Россия должна полностью перейти на закрытый план нумерации. Это означает, что в городах нельзя будет набирать короткие 5-7-значные номера для местных вызовов, а всегда будет необходимо использовать полный международный формат номера.

Сейчас у нас есть различие в наборе комбинаций при звонках внутри телефонной зоны, за ее пределы и при междугородних вызовах.

  • ХХХ-ХХ-ХХ — звонки по местным городским номерам, никакие коды не нужны;
  • (Код города) ХХХ-ХХ-ХХ — междугородные звонки, набираются с кодом города;
  • +7 (код города) (номер абонента) — для звонков из-за пределов РФ.

Если говорить о вызовах со стационарных телефонов, то для выхода на межгород нужно набирать 8-ку (в других странах 0).

При закрытом плане нумерации всегда нужно будет набирать расширенный вариант, то есть с +7 и кодом города.

Страны редко меняют план нумерации, но в ближайшем будущем это предстоит россиянам. Большинство абонентов не почувствуют разницы, ведь в телефонной книге смартфона удобно сразу сохранять длинную версию номера, лишь только редким пользователям стационарных телефонов придется всегда набирать длинные номера в международном формате.

Резюме

Российский номер сотового телефона в международном формате состоит из 11 цифр, где +7 — это международный идентификатор страны, (9хх) — префикс оператора, также показывающий регион регистрации номера, а дальше идет семизначный номер абонента.

Для правильного набора местных номеров в международном формате нужно предварительно выяснить код города.

С развитием в стране смартфонов, различных соединений и возможности позвонить в другое государство по беспроводной связи сформировались и правила набора. Это комбинация цифр, позволяющая записать номер телефона и позвонить гражданину, который пребывает за пределами РФ. Россияне привыкли записывать свою нумерацию через восьмерку, но через нее нельзя сделать дозвон до гражданина, находящегося за границей России.

И когда требуется набор номера в другом государстве, то в голове возникает немало вопросов.

Правила набора международного формата

Порядок набора нумерации сотового абонента, который находится за пределами Российского государства, несколько отличается от стандартного звонка по России. Осуществить звонок по России можно, набрав номер как по внутренней комбинации, так и по международной. Человек сможет дозвониться до абонента и в том, и другом случае. А вот если осуществлять звонок в другое государство, то нужно придерживаться определенных правил. В частности:

  1. Разблокировать мобильный телефон, нажать «+» до появления его на дисплее телефона.
  2. Возможно использовать и альтернативный вариант международного формата. К примеру, сочетание цифровой комбинации 810. Но если использовать символ «+», то по умолчанию сеть соединяется с выбранной страной, вне зависимости, какие цифры принадлежат конкретному государству.
  3. Нужно написать код государства, куда человек желает совершить вызов. К примеру, кодовое значение на Украине – 38, в Великобритании – 44.
  4. Далее нужно уточнить код конкретного города или мобильной организации. Состоит комбинация из трех или шести цифр.
  5. Далее последует номер телефона самого абонента. Как правило, это 7-значное значение. Чем количество цифр меньше по городу, тем больше абонентский номер. Как правило, вся нумерация не превышает 10 цифр.
  6. После набора всей необходимой комбинации можно нажимать клавишу звонка и дожидаться соединения.
  7. Если используется IP-телефония, то дополнительно указывается местный номер сотового оператора.

При использовании такого алгоритма действий можно позвонить в любую другую страну.

При желании позвонить в иное государство или страну лучше воспользоваться таксофоном или домашним телефоном. Если же звонок совершать через мобильного оператора, даже при самом дешевом тарифе, нужно будет оплатить и международный звонок по тарифу, и карту использования (если таковая присутствует для звонков за границу). Дополнительно списываются денежные средства еще и за местное соединение, которое указано на карточке.

Чтобы позвонить из России, необходимо сделать выход на связь другого государства при помощи номеров соединения фиксированного вида. К примеру, 8-10- (код государства) (далее комбинация района) (персональная нумерация абонента).

Международный формат номера телефона Е164

Код Е164 часто встречается при наборе формата для звонков в иные государства. Это рекомендация МСЭ-Т, что позволяет уточнить план нумерации каждой страны для голосового соединения. Стандарт распространяется для эры ISDN. Особенности цифрового значения:

  • числовое значение ограничено максимальным количеством цифрового ряда – 15 чисел, исключение – код Dial out;
  • первоначально прописывается код страны, который состоит из 1-3 цифр;
  • затем идет национальный код регионального принципа, а в конце абонентский номер.

Часто используется стандарт не только Е164, но и Е123. Последней версией стандарта считается третья.

Код страны

Это компонент, который входит в цифровое значение при наборе международного формата. Когда гражданину нужно совершить исходящую связь другому абоненту, находящемуся за пределами российского пространства, потребуется ввести комбинацию цифр, соответствующую стране. В документации представлено сразу 9 зон, в которых присутствуют собственные цифровые значения. В частности:

  • к первой зоне относят Северную Америку;
  • ко второй зоне относят Африку и близлежащие острова;
  • к третьей и четвертой страны Европы – Испания, Франция, Исландия;
  • к пятой и шестой зоне Центральная, Южная Америка и Юго-Восточная Азия соответственно;
  • к седьмой зоне относят страны, которые ранее были в Советском Союзе;
  • к восьмой зоне относят Восточную Азию и специализированные службы, которые используют спутниковую систему для проведения голосовых соединений;
  • к девятой зоне относят жителей Азии.

В международном формате представлено немало комбинации цифр. При необходимости совершить звонок за пределы Российской Федерации можно воспользоваться справочником.

Код набора номера

Если с обычными телефонами все ясно, то с Айфоном возникают сложности. Для начала владельцу «яблока» необходимо набрать код выхода при размещении голосового вызова в иное государство. Такая комбинация известна как префикс международного формата, а иногда IDD. Фактически это прямое соединение со страной.

В качестве стандарта МСЭ рекомендует набирать два нуля. Этот стандарт внедрен многими странами, но далеко не всеми. К примеру, чтобы сделать соединению гражданину с Айфона в Канаду или Соединенные Штаты Америки, необходимо написать 011 для входа в систему. Такая система позволяет осуществить голосовую связь, даже если оба абонента находятся в разных государствах с разными номерами городов и префиксами.

То есть в Великобритании нужно при звонке набрать 00617, а в Соединенных Штатах Америки уже 011617.

Код соединительной линии

Иногда происходят сбои при голосовом звонке по номеру телефона по причине кода внешней линии.

Код соединительной линии – это последовательность цифр, которую необходимо набрать до международного номера для инициирования телефонного вызова с целью уточнения телекоммуникационного формата. Для этого и необходим знак «+» — чтобы сначала набирается международный код внешней линии, а затем уже идет комбинация государства.

Представленное понятие может быть как единой цифрой, так и цифровым кодом, который используется для размещения всех голосовых соединений в конкретном государстве. По факту сейчас не во всех странах используется данный формат. На практике номер записывается путем применения национальной цифровой комбинации, указанной в скобках.

То есть, например, если звонить в ту же Австралию, то формат звонка будет выглядеть следующим образом +61(0)7 и далее номер абонента.

Международный формат номеров мобильных телефонов в России

Российская нумерация в формате международного типа состоит сразу же из 3 составляющих. В частности:

  • +7 – кодовое значение представленного государства в международном значении;
  • ХХХ – это префикс, обозначающий наименование мобильной организации и регион для регистрации соединения;
  • Остальные цифры – нумерация владельца симки, с которым необходимо созвониться. Под данным цифровым значением возможно уточнить региональное местоположение человека.

То есть для набора по России достаточно набрать 11 цифр номера абонента, и это не считая +. Аналогичные показатели нужно ввести, если человек желает совершить с другого государства звонок в РФ. Внутри России можно или через восьмерку совершать звонки или же через +7. В контактной книге лучше сохранять номер сразу же в международном формате, так как некоторые звонки через 8 не проходят по сотовой вышке.

Сотовый оператор Мегафон в международном масштабе имеет комбинацию цифр 920, 929, 936 и 937. Если говорить о сотовом операторе МТС, то префикс 910, 919, 989 и 980. В Билайне прослеживается комбинация 903, 961, 909, 968, 976.

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

Формат + 7 Российская Федерация делит с Казахстаном и Абхазией. Другие же страны нашли другие префиксы и используют их. К примеру, в Республике Крым используется +7-869 (это для Севастополя), остальные же жители Крыма используют +7978.

Для звонков на номера любого сотового оператора, зарегистрированного в Российской Федерации, вне зависимости от расположения в домашнем регионе, нужно набрать формат 8 (код города) и восьмизначное значение или же +7 (код города) – это федеральное значение. Если нужно указать и добавочный номер, то нужно набрать изначально основной по вышеуказанной инструкции, дождаться ответа автоинформатора, а затем набрать дополнительный. Если телефон не поддерживает тональный режим, то сразу же после небольшой паузы введенного основного номера, прописывается символ Р, а далее уже дополнительную комбинацию.

Previous Entry | Next Entry

Как правильно писать номер телефона — формат телефонных номеров — номер телефона в международном формате

В каких странах и как именно принято писать телефонные номера

Особенности написания телефонных номеров — как принято писать телефонные номера, как правильно писать номера телефонов по международным стандартам.

Практически интернациональный формат телефонного номера не существует.

Формат номера телефона в USA — Как пишется номер телефона в Америке (США)

Все без исключения современные мобильные телефоны содержат полный латинский алфавит (а некоторые модели — русский). Тут возникает проблема с двумя способами использования букв. Первая модель — американская. Если вы едете по дороге и видите на большом грузовике надпись How am I driving? Call 1-800-EAT-SHIT, это значит, что вам предлагают позвонить по телефону 1-800-328-7448.

То есть американский формат записи XXX-XXXX

В Европе телефонные номера всегда отделялись блоками по две цифры.

Во Франции и в Великом Герцогстве Люксембург используют в качестве разделителя точки или пробелы (восьмизначные номера с кодом города):

XX.XX.XX.XX.XX

XX XX XX XX XX

0 800 XX XX XX

В Германии используют пробелы (реже — дефисы):

XXX XX XX

XXX-XX-XX

00 49 (XX XX) XX XX XX

(0 XX XX) X XX

В Болгарии принято писать телефонные номера тремя группами по две цифры:

XX-XX-XX

Особняком стоят Италия и Голландия, где очень часто можно встретить номера телефонов без каких-либо разделителей: XX XXXXXXX, 020-XXXXXXX — вопиющее надругательство над человеком, пытающимся такой номер не то что запомнить, а всего лишь прочитать. Особенно не хватает разделительного знака в записной книжке мобильного телефона — сходу разобрать десять слипшихся цифр нельзя.

В Великобритании (у которой в плане технических стандартов очень много общего с США) пишут номера телефонов двумя группами цифр:

020 XXXX XXXX

+44 20 XXXX XXXX

0XXXX XXXXXX (кроме Лондона)

0800 XXXXXX (бесплатные номера)

Тут уместно напомнить, что в английском языке не принято большие числительные читать одним словом. Даже год при произношении разбивается на два отдельных числа: 1998 по-английски читается как «девятнадцать девяносто восемь», а не «одна тысяча девятьсот девяносто восемь». Иногда числа произносят по одной цифре.

В России (и в СССР) все телефонные номера записывались согласно правилу: дефисом или пробелом отделяются пары цифр справа налево. Если в начале остались три цифры, разрешается записать их слитно.

Пункт 3 правил, опубликованных в «Списке абонентов Московской телефонной сети» за 1916 год, гласит:

«Нумера свыше сотни произносятся так: напр. 1.23 — один двадцать три, 9.72 — девять семьдесят два, 70.09 — семьдесят нуль девять. Нумера свыше 10.000 — произносятся отдельно каждая цифра сотни, например 1.20.48 — один двадцать сорок восемь, 2.08.35 — два нуль восемь тридцать пять, 3.35.29 — три тридцать пять двадцать девять, 4.49.52 — четыре сорок девять пятьдесят два, 5.15.86 — пять пятнадцать восемьдесят шесть и т. д., а не сто двадцать сорок восемь, двести восемь тридцать пять и т. д.»

Эти правила написания номера телефона хорошо знают и военные связисты — при произношении двузначных чисел вероятность ошибки принимающей (слушающей) стороны снижается.

Формат записи телефонного номера для России, стран СНГ и Балтии такой: XXX-XX-XX. Многие бывшие советские республики переняли американский формат записи (XXX-XXXX), совершенно не учитывая культурных, исторических и семантических значений такого формата.

В телефонных справочниках дефисы могут заменяться на пробелы (для экономии времени наборщиков):

Кроме отдельных случаев с удачным сочетанием цифр (типа 222-3-222) сегодня в России телефон должен писаться так:

123-45-67

12-34-56

1-23-45

12-34

(правильное написание телефонного номера для обычных городских номеров)

(123) 123-45-67

(1234) 12-34-56

(12345) 1-23-45

(123456) 12-34

(Как правильно писать телефонный номер для номеров с кодом города)

Например, как писать номер телефона в Москве: (095) 123-45-67

Федеральный формат номера сотового телефона:

8 123 123-45-67

(стандарт написания телефонного номера для номеров мобильных телефонов)

А вот телефонный номер России в международном формате:

+7 123 123-45-67

+7 1234 12-34-56

+7 12345 1-23-45

+7 123456 12-34

(номер телефона в международном формате — правильное написание телефонного номера для обозначения российских номеров телефонов за рубежом)

приведены цитаты из http://www.artlebedev.ru/kovodstvo2/sections/91/

Profile

mr_alinaki

Latest Month

Октябрь 2008
Вс Пн Вт Ср Чт Пт Сб
      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  

View All Archives

Метки

View my Tags page

Page Summary

  • : (без темы)[+2]

Категории

View my Categories page Разработано LiveJournal.com Designed by Terri McAllister Автор оригинала: David Yonge-Mallo, компания Google

  • Перевод

Список составили разработчики Java, C++ и JavaScript библиотеки libphonenumber для парсинга, форматирования и проверки телефонных номеров Телефонные номера используются повсеместно и довольно давно. Поэтому очень удивительно, сколько заблуждений остаётся у программистов относительно них. 1. Телефонные номера, действительные сейчас, останутся действительными всегда. Телефонные номера определённого типа (например, мобильные), никогда не сменят тип. Подключенный сегодня телефонный номер завтра могут отключить. Бесплатный сегодня номер завтра может стать платным. Оператор связи может расширить диапазон доступных номеров, добавив дополнительную цифру и увеличив длину номера.Подсказка. Не сохраняйте свойства телефонного номера, такие как валидность или тип. Проверяйте эту информацию с помощью библиотеки, когда необходимо. 2. Телефонный номер однозначно идентифицирует человека. Ещё не так давно, когда мобильников не существовало, считалось вполне нормальным иметь один домашний телефон для всей семьи. В некоторых районах мира такое сохранилось до сих пор, когда родственники (или даже друзья) пользуются общим телефонным номером. 3. У человека есть только один телефонный номер. Очевидно, это не всегда так. 4. Телефонные номера не могут быть использованы заново. Старые номера заново вводят в оборот и раздают другим людям. 5. Каждый код страны соответствует в точности одной стране. У США, Канады и нескольких карибских островов одинаковый код +1. Россия и Казахстан делят код +7. И это не единственные примеры! 6. Каждой стране соответствует только один код. В данный момент (март 2016 года) на телефоны в спорной и не всеми признанной территории Косово можно дозвониться через национальные коды Сербии (+381), Словении (+386) или Монако (+377), смотря где и когда был выдан номер.Подсказка. Используйте телефонный виджет, чтобы подтолкнуть пользователей к вводу телефонного номера в международном формате. 7. Телефонный номер можно набрать отовсюду. Некоторые номера можно набрать только внутри страны. Некоторые набираются из определённой группы стран, например, как международные номера 00800. Некоторые набираются только если абонент обслуживается конкретным оператором связи. 8. Есть только два способа набрать номер: в международном формате или в местном. Для некоторых номеров требуются различные префиксы, в зависимости от того, откуда набирается номер; с какого устройства и на какое устройство вы звоните; находитесь ли вы внутри или за пределами определённого географического региона. Примеры:

  • В Бразилии для внутренних звонков в определённых географических границ нужно явно указать код оператора, через которого вы хотите звонить.
  • В Непале предваряющий номер «0» опускается в зависимости от того, звоните вы с мобильного или стационарного телефона.
  • В Новой Зеландии нужно набрать код региона (например, 03), даже если номер в том же регионе, что и вы, за исключением «близкого» номера (обычно границы города/района), для которого код региона набирать нельзя.

Подсказка. Используйте formatForMobileDialling для получения конкретного номера, который пользователь должен набрать со своего мобильного телефона. 9. Чтобы сделать номер доступным для дозвона, достаточно сменить префикс. В Аргентине для внутренних звонков нужно вставить цифры «15» после кода региона, но перед местным номером, а цифру «9» после кода страны (54) нужно удалить. Так международный номер +54 9 2982 123456 превращается в местный номер 02982 15 123456. 10. Ни один префикс реального телефонного номера не может быть реальным телефонным номером. В некоторых странах возможно попасть на другого абонента, если набрать дополнительные цифры после телефонного номера. Так, номер 12345678 может принадлежать одному человеку, а номер 123456 — другому. 11. По неправильно набранному номеру невозможно дозвониться. В некоторых странах или на некоторых аппаратах лишние цифры отбрасываются. Например, 1-800-MICROSOFT — это неправильный номер, но он всё равно соединит с Microsoft, потому что лишние цифры отбрасываются. Также и на номера вроде 911 в некоторых странах можно позвонить, набрав 911123, но не во всех странах. В других странах оператор «исправляет» неправильный номер, например, добавляя мобильный код, если он знает, что это мобильный номер. 12. Все действующие телефонные номера соответствуют спецификациям ITU. Спецификации ITU содержат стандарты вроде такого: «Национальные номера не могут быть больше 16 разрядов», но в Германии раздавали действующие телефонные номера длиннее этого. 13. Все действующие телефонные номера принадлежат какой-либо стране. Есть много «национальных кодов», которые выдавали организациям без географической привязки, таким как «800» или спутниковые сервисы. 14. Телефонный номер содержит только цифры. В Израиле некоторые рекламные номера начинаются с «*». 15. Телефонные номера всегда написаны в ASCII. В Египте телефонные номера обычно записывают местными цифрами.См. такжеЗаблуждения программистов относительно времениЗаблуждения программистов об именах Возникла задача автоматического форматирования телефонных номеров в виде страна (город) номер, и первым делом я обратился к существующим решениям. К сожалению, оказалось, что все найденные решения основываются на обычном подгоне строки под пользовательский формат, имея ограниченную область применения и ошибки при выходе за ее пределы. Для начала приведу обзор найденных решений. Тем, кому это не интересно, рекомендую прокрутить ниже до заголовка «Форматы телефонных номеров» — там уже представлен мой вариант разбора номера с ссылкой на код.

Всеуничтожающий примитив

(Найденное решение. Мое ниже) Первое, на что я наткнулся — были сообщения на форумах и банки скриптов, предлагающие решения следующего плана:

<? function phone_number($sPhone){     $sPhone = ereg_replace(«[^0-9]»,»,$sPhone);     if(strlen($sPhone) != 10) return(False);     $sArea = substr($sPhone, 0,3);     $sPrefix = substr($sPhone,3,3);     $sNumber = substr($sPhone,6,4);     $sPhone = «(«.$sArea.«)».$sPrefix.«-«.$sNumber;     return($sPhone); }

Один из простых вариантов шустрого форматирования телефонных номеров, но каждое такое решение ориентировано на телефонные номера из конкретной локальной зоны и не является решением задачи.

Форматирование с помощью sscanf

(Найденное решение. Мое ниже)

function formatPhone($phone) {     if (empty($phone)) return«»;     if (strlen($phone) == 7)         sscanf($phone, «%3s%4s», $prefix, $exchange);     else if (strlen($phone) == 10)             sscanf($phone, «%3s%3s%4s», $area, $prefix, $exchange);         else if (strlen($phone) > 10)                 if(substr($phone, 0,1)==‘1’) {                     sscanf($phone, «%1s%3s%3s%4s», $country, $area, $prefix, $exchange);                 }                 else{                     sscanf($phone, «%3s%3s%4s%s», $area, $prefix, $exchange, $extension);             }             else                 return«unknown phone format: $phone»;     $out = «»;     $out .= isset($country)? $country.‘ ‘: »;     $out .= isset($area)? ‘(‘. $area. ‘) ‘: »;     $out .= $prefix. ‘-‘. $exchange;     $out .= isset($extension)? ‘ x’. $extension: »;     return$out; }

Не смотря на простое решение, эта функция уже умеет форматировать номера длиной 7, 10 и более цифр, но попадись ей номер из российской глубинки, она подавится и выдаст ошибочный результат.

Symfony, lib/helpers/PhoneHelper.php, format_phone

(Найденное решение. Мое ниже)

function format_phone($phone = », $convert = false, $trim = true) {     // If we have not entered a phone number just return empty     if (empty($phone)) {         return »;     }       // Strip out any extra characters that we do not need only keep letters and numbers     $phone = preg_replace(«/[^0-9A-Za-z]/», «», $phone);       // Do we want to convert phone numbers with letters to their number equivalent?     // Samples are: 1-800-TERMINIX, 1-800-FLOWERS, 1-800-Petmeds     if ($convert == true) {         $replace = array(‘2’=>array(‘a’,‘b’,‘c’),                  ‘3’=>array(‘d’,‘e’,‘f’),                      ‘4’=>array(‘g’,‘h’,‘i’),                  ‘5’=>array(‘j’,‘k’,‘l’),                                  ‘6’=>array(‘m’,‘n’,‘o’),                  ‘7’=>array(‘p’,‘q’,‘r’,‘s’),                  ‘8’=>array(‘t’,‘u’,‘v’), ‘9’=>array(‘w’,‘x’,‘y’,‘z’));           // Replace each letter with a number         // Notice this is case insensitive with the str_ireplace instead of str_replace          foreach($replace as $digit=>$letters) {             $phone = str_ireplace($letters, $digit, $phone);         }     }       // If we have a number longer than 11 digits cut the string down to only 11     // This is also only ran if we want to limit only to 11 characters     if ($trim == true && strlen($phone)>11) {         $phone = substr($phone,  0, 11);     }       // Perform phone number formatting here     if (strlen($phone) == 7) {         return preg_replace(«/([0-9a-zA-Z]{3})([0-9a-zA-Z]{4})/», «$1-$2», $phone);     } elseif (strlen($phone) == 10) {         return preg_replace(«/([0-9a-zA-Z]{3})([0-9a-zA-Z]{3})([0-9a-zA-Z]{4})/», «($1) $2-$3», $phone);     } elseif (strlen($phone) == 11) {         return preg_replace(«/([0-9a-zA-Z]{1})([0-9a-zA-Z]{3})([0-9a-zA-Z]{3})([0-9a-zA-Z]{4})/», «$1($2) $3-$4», $phone);     }       // Return original phone if not 7, 10 or 11 digits long     return $phone; }

Функция позволяет не только форматировать в XXX-XXXX, (XXX) XXX-XXXX и X (XXX) XXX-XXXX, но и конвертировать номера, написанные цифрами. Ограниченность функции в форматировании номеров длиной 7, 10 и 11 символов никак не подходит.

Форматы телефонных номеров

Из вики-статьи видно, что никакого простого и удобного паттерна для быстрого форматирования всех номеров не существует. Коды стран регистрируются, подобно доменным зонам, а коды городов — остаются на совести каждой из стран. Другими словами, маршрутизация звонков идет по маске, начиная с кода страны: звонок, направленный в конкретную страну далее пробивает себе маршрут в соответствии с кодами области, города, района и т.д. начиная с самой левой цифры, пока последнее звено не перебросит его на конкретный телефонный/факсовый аппарат. Проблема усложняется еще и тем, что коды городов внутри стран точно так же не поддаются единой сквозной стандартизации, т.е. в худшем из вариантов для правильного форматирования номеров придется использовать двумерный массив с кодами стран и их городов.На самом деле, все оказалось не так страшно. В каждой стране можно разделить все коды городов на две части: на те, что в большинстве своем совпадают по длине, и все остальные. Этого достаточно, чтобы резко сократить область перебора кодов при сравнении. Т.е. можно создать массив из данных по каждой стране вида:

<? $data = Array( ‘Код страны’=>Array(         ‘name’=>‘Имя страны’, // для удобства. Не будет использоваться.         ‘cityCodeLength’=> обычная_длина_кода_города_для_этой_страны,         ‘exceptions’=>Array(коды_городов_исключения),     ) );

Затем провести предварительную обработку данных, дополнив его полями, сужающими область перебора, exceptions_max и exceptions_min — максимальной и минимальной длиной кода городов-исключений, соответственно. Также необходимо учесть страны, в которых коды городов начинаются на 0 — отразим эту «особенность» полем zeroHack. Как пример:

<? $data = Array( ‘886’=>Array(         ‘name’=>‘Taiwan’,         ‘cityCodeLength’=>1,         ‘zeroHack’=>false,         ‘exceptions’=>Array(89,90,91,92,93,96,60,70,94,95),         ‘exceptions_max’=>2,         ‘exceptions_min’=>2     ), );

После этого возьмем подходящие участки кода из решений выше и сделаем функцию форматирования:

<? function phone($phone = », $convert = true, $trim = true) {     global $phoneCodes; // только для примера! При реализации избавиться от глобальной переменной.     if (empty($phone)) {         return »;     }     // очистка от лишнего мусора с сохранением информации о «плюсе» в начале номера     $phone=trim($phone);     $plus = ($phone[ 0] == ‘+’);     $phone = preg_replace(«/[^0-9A-Za-z]/», «», $phone);     $OriginalPhone = $phone;       // конвертируем буквенный номер в цифровой     if ($convert == true && !is_numeric($phone)) {         $replace = array(‘2’=>array(‘a’,‘b’,‘c’),         ‘3’=>array(‘d’,‘e’,‘f’),         ‘4’=>array(‘g’,‘h’,‘i’),         ‘5’=>array(‘j’,‘k’,‘l’),         ‘6’=>array(‘m’,‘n’,‘o’),         ‘7’=>array(‘p’,‘q’,‘r’,‘s’),         ‘8’=>array(‘t’,‘u’,‘v’),         ‘9’=>array(‘w’,‘x’,‘y’,‘z’));           foreach($replace as $digit=>$letters) {             $phone = str_ireplace($letters, $digit, $phone);         }     }       // заменяем 00 в начале номера на +     if (substr($phone,  0, 2)==«00»)     {         $phone = substr($phone, 2, strlen($phone)-2);         $plus=true;     }       // если телефон длиннее 7 символов, начинаем поиск страны     if (strlen($phone)>7)     foreach ($phoneCodes as $countryCode=>$data)     {         $codeLen = strlen($countryCode);         if (substr($phone,  0, $codeLen)==$countryCode)         {             // как только страна обнаружена, урезаем телефон до уровня кода города             $phone = substr($phone, $codeLen, strlen($phone)-$codeLen);             $zero=false;             // проверяем на наличие нулей в коде города             if ($data[‘zeroHack’] && $phone[ 0]==‘0’)             {                 $zero=true;                 $phone = substr($phone, 1, strlen($phone)-1);             }               $cityCode=NULL;             // сначала сравниваем с городами-исключениями             if ($data[‘exceptions_max’]!= 0)             for ($cityCodeLen=$data[‘exceptions_max’]; $cityCodeLen>=$data[‘exceptions_min’]; $cityCodeLen—)             if (in_array(intval(substr($phone,  0, $cityCodeLen)), $data[‘exceptions’]))             {                 $cityCode = ($zero? «0»: «»).substr($phone,  0, $cityCodeLen);                 $phone = substr($phone, $cityCodeLen, strlen($phone)-$cityCodeLen);                 break;             }             // в случае неудачи с исключениями вырезаем код города в соответствии с длиной по умолчанию             if (is_null($cityCode))             {                 $cityCode = substr($phone,  0, $data[‘cityCodeLength’]);                 $phone = substr($phone, $data[‘cityCodeLength’], strlen($phone)-$data[‘cityCodeLength’]);             }             // возвращаем результат             return ($plus? «+»: «»).$countryCode.‘(‘.$cityCode.‘)’.phoneBlocks($phone);         }     }     // возвращаем результат без кода страны и города     return ($plus? «+»: «»).phoneBlocks($phone); }   // функция превращает любое число в строку формата XX-XX-… или XXX-XX-XX-… в зависимости от четности кол-ва цифр function phoneBlocks($number){     $add=»;     if (strlen($number)%2)     {         $add = $number[ 0];         $add .= (strlen($number)<=5? «-«: «»);         $number = substr($number, 1, strlen($number)-1);     }     return $add.implode(«-«, str_split($number, 2)); }   // тесты echo phone(«+38 (044) 226-22-04»).«»; echo phone(«0038 (044) 226-22-04»).«»; echo phone(«+79263874814»).«»; echo phone(«4816145»).«»; echo phone(«+44 (0) 870 770 5370»).«»; echo phone(«0044 (0) 870 770 5370»).«»; echo phone(«+436764505509»).«»; echo phone(«(+38-048) 784-15-46 «).«»; echo phone(«(38-057) 706-34-03 «).«»; echo phone(«+38 (044) 244 12 01 «).«»;

, где global $phoneCodes; — тот самый массив с информацией по всем странам.Выведет

+380(44)226-22-04+380(44)226-22-04+7(926)387-48-14481-61-45+44(0870)770-53-70+44(0870)770-53-70+43(6764)50-55-09380(4878)415-46380(5770)634-03+380(44)244-12-01

Функция полностью решает поставленную задачу.Из недостатков функции следует отметить отсутствие анализа медленных участков с целью оптимизаци, а также обработки телефонных номеров, где есть код города, но нет кода страны (в этом случае достаточно бить на блоки функцией phoneBlocks или воспользоваться одним из решений выше). При использовании ее в какой-либо реализации необходимо заменить глобальную переменную на ссылку в параметре, а также можно доработать или заменить формат вывода, за который отвечает функция phoneBlocks.

Самое интересное

Используя информацию с сайтов:http://www.mtt.ru/info/def/index.wbphttp://www.hella.ru/code/codeuro.htmhttp://www.scross.ru/guide/phone-global/ я собрал массив данных по всем представленным странам, включая города-исключения, флаги zeroHack, а также коды мобильных сетей. Код можно загрузить здесь.

Быстродействие

Вопреки всем самым пессимистичным ожиданиям, код отрабатывает 10.000 номеров менее чем за 2 секунды.UPD Готовятся поправки:

  1. поддержка паттернов форматирования, принятых внутри конкретных стран («локально-принятые» нормы отображения номеров);
  2. добавление флага для указания, относительно какой страны выполнять форматирование номера;
  3. добавление параметра для указания формата вывода (в случае личных предпочтений и исключений);
  4. поддержка нелатинских буквенных номеров
  5. определение сотовых номеров и замена скобок на пробелы

UPD: Архив пропал с сервера, выложил на https://github.com/mrXCray/PhoneCodesСкоро будет обновление по поправкам выше + бонус. 219 40,4k 219

Используемые источники:

  • https://www.topnomer.ru/blog/mezhdunarodnyy-format-telefonnykh-nomerov.html
  • https://kakoperator.ru/collect/nomera-telefonov-v-mezhdunarodnom-formate-v-rossii
  • https://mr-alinaki.livejournal.com/3712.html
  • https://habr.com/p/279751/
  • https://m.habr.com/ru/post/102352/

Это тоже интересно:

  • Правильное написание номера мобильного телефона
  • Правильно написанный номер телефона
  • Правила набора международного номера со стационарного телефона
  • Правила записи номера телефона
  • Правеж коллекторское агентство номер телефона

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии