Формат E.123, что было под рукой(josm).
А так-то и пробел не учитывается, но лучше не менять всё на +7 XXX XXX-XX-XX.
База нужна для работы с её данными, а не глазками смотреть, да и конечный пользователь эти данные из базы в чистом виде не видит.
Встречается у нас и такое 8-723-32-3-23-00, 8-7232-57-85-80, набор идёт уже на 87233232300 и 87232578580 соответственно.
Выставлять в базе по принятому в стране стандарту, если всё равно модем приводит к единому стандарту символов набора номера или модемный вариант сразу писать в базу?
По поводу +7 всё просто - проект международный, поэтому код страны в начале номера более чем оправдан.
Почему без пробелов:
Лишний мусор в базе.
Легкочитаемость - понятие субъективное: кому-то нужны пробелы, кто-то захочет дефисы (как справедливо выше заметили, они тоже разные бывают), кто-то префикс в скобки возьмёт. Чем больше вариативность, тем больше возможность напутать и вероятность войны правок в случае столкновения на одной территории мапперов с разными вкусами
Дефисы, имхо, - наследие времён, когда ещё не было мобильных, а городские номера друг другу диктовали и записывали ручкой в бумажную телефонную книгу. Тогда деление на группы помогало не ошибиться при диктовке.
Отделять код от номера тоже нерационально. Во-первых, с ростом числа абонентов города переходят на более широкие планы адресации: внутригородской номер становится на одну цифру длиннее, а код - соответственно, на одну цифру короче. И что, всё в базе переделывать из-за этого? Во-вторых, если раньше для мобильных номеров первые 3 цифры идентифицировали оператора, то с принятием закона о возможности сохранения номера при смене оператора это тоже потеряло смысл.
Даже не представляю, где это, есть ли там понятие “местный номер”, и какой он там длины, но в любом случае это один и тот же номер, записать ли его с пробелами или нет. Википедия уверяет, что в дп Загорянский Московской области телефоны имеют префикс +7 49656.
Какая разница с +7 или 8, только при звонках из за границы вы не сможете дозвониться, как бы в базе не был записан номер, он все равно будет набран. Тире пишутся по привычке.
С таким примером можно смело эту тему считать бестолковой и дальше не обсуждать.
мне так какжется что тут пошло переливание из пустого в порожнее ??
ни одна программа поддерживающая стандарт E.164 не заметит разницы между +7 812 123-45-67, +7 8121 23-45-67 и +78121234567 - т.к. это один и тот же номер.
В том, что я, как конечный пользователь из Шишкиного Леса или Загорянского, хочу видеть номер в привычном для меня формате. (В Шишкином Лесу шестизначные номера, в Загорянском семизначные)
Тут же одни программисты собрались, которые не состоянии выкинуть все лишние символы из номера, но зато с лёгкость могут отформатировать номер без лишних символов как надо.
Ну то есть никаких объективных причин нет, есть только субъективный фактор в виде “привычный формат”.
А когда в Шишкином Лесу увеличился кол-во телефонов и они перейдут на 7-значные кода - будем все введённые номера перелопачивать?
сейчас конечному пользователю уже давно до лампочки на номер - ему нужно дозвониться куда ему нужно и пофих что это будет телефон, скайп, бибер или система барабанов племени тумба-юмба.
тем более что по стране безлимит.
В этом случае там не может быть одинакового префикса, как в приведенном примере. Тогда, как я и сказал, отображающая программа должна иметь таблицу длин префиксов.