Перейти к содержимому


Ввести единый формат телефонов

телефон формат поля

Сообщений в теме: 22

#1 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 20 Март 2013 - 11:34

Подскажите, как грамотно Ввести единый формат телефонов в таблице "Контрагенты"?
Например, в формате +AА BBBB CCCCCCC... Т.е. сначала знак + и 2 пробела и цифра, а другие символы запрещены?
Чтобы система ругалась и не позволяла сохранить контрагента с номером в другом формате?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Март 2013 - 11:49

http://clientbase.ru..._16/input_mask/

Но гарантированно работает пока только в Firefox. Работа в других браузерах будет налажена позже.

#3 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 24 Сентябрь 2013 - 11:27

Мне нужно чтоб формат ввода номера телефона был такой 000-000-00-00
Создаю шаблон заполнения N3[-]1N3[-]1N2[-]1N2 но выходит ошибка "В шаблоне в элементе списка дефис с краю"
Если "-" заменить на "+" то все работает. Как сделать чтоб работало со знаком "-" ?

Сообщение отредактировал f-jeka: 24 Сентябрь 2013 - 13:25


#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Сентябрь 2013 - 10:29

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

#5 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 30 Сентябрь 2013 - 02:25

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

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Сентябрь 2013 - 08:55

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

#7 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 19 Январь 2014 - 01:38

Добрый день. Обновлены ли маски в новых версиях? Интересует возможность записывать телефоны в формате 8-000-000-00-00 то есть с черточками.

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Январь 2014 - 14:05

Нет, пока не стоит в планах. К сожалению, не могу сказать когда ими займутся.

#9 bottrop

    Активный участник

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 04 Июль 2015 - 01:28

Подскажите: в базе есть номера телефонов, записанные в виде 8962ХХХХХХХ. Как автоматически (может с помощью вычисления) заменить спереди цифру "8" на "7", чтобы можно было делать рассылку смс на эти номера. Заранее благодарен за помощь.

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Июль 2015 - 16:38

С помощью вычисления и меняйте. Как заменить символ в строке, можно узнать из стандартной документации по PHP.

#11 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 14 Июль 2015 - 22:49

Чтобы указать в SMS нужен формат +7.
Я писал автоисправление поля телефона для вариантов 8918 и 7918 на +7918. Может немного архаично, но работает вроде. Настраивается на сохранение поля "Телефон +7"

if ((!empty($line['Телефон +7'])) AND (strlen($line['Телефон +7'])>8)){
  $t=$line['Телефон +7'];
  $tn=$t;
  $t1=substr($t,0,1);
  $t2=substr($t,0,2);
  if ($t2=="7") {
	$tn="+7".substr($t,1);
  }
  elseif ($t1=="8") {
	$tn="+7".substr($t,1);
  }
  elseif ($t1=="9") {
	$tn="+7".substr($t,0);
  }
  $line['Телефон +7']=$tn;
}

Сообщение отредактировал Александр Пономарев: 14 Июль 2015 - 22:52


#12 bottrop

    Активный участник

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 17 Июль 2015 - 17:02

Просмотр сообщенияАлександр Пономарев (14 Июль 2015 - 22:49) писал:

Чтобы указать в SMS нужен формат +7.
Я писал автоисправление поля телефона для вариантов 8918 и 7918 на +7918. Может немного архаично, но работает вроде. Настраивается на сохранение поля "Телефон +7"

if ((!empty($line['Телефон +7'])) AND (strlen($line['Телефон +7'])>8)){
  $t=$line['Телефон +7'];
  $tn=$t;
  $t1=substr($t,0,1);
  $t2=substr($t,0,2);
  if ($t2=="7") {
	$tn="+7".substr($t,1);
  }
  elseif ($t1=="8") {
	$tn="+7".substr($t,1);
  }
  elseif ($t1=="9") {
	$tn="+7".substr($t,0);
  }
  $line['Телефон +7']=$tn;
}


Спасибо за пример. Я пробовал отправку смс на номера без "+", просто на 79000000000, вроде отправляет без проблем. Поэтому не стал заморачиваться с "+". Попробуйте, должно работать. Хотя если уже делаете с "+", то думаю менять не за чем)

#13 bottrop

    Активный участник

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 20 Июль 2015 - 16:52

Просмотр сообщенияАлександр Пономарев (14 Июль 2015 - 22:49) писал:

Чтобы указать в SMS нужен формат +7.
Я писал автоисправление поля телефона для вариантов 8918 и 7918 на +7918. Может немного архаично, но работает вроде. Настраивается на сохранение поля "Телефон +7"

Вы кстати не подскажите как ищите дубли по полю "Телефон"? так чтобы дублирующиеся записи выдавались в таблице для дальнейшей пересортировки.

#14 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 12 Апрель 2016 - 17:28

Нет ли решения как сделать формат номера с черточками 8-xxx-xxx-xx-xx ?

#15 geekvega

    Участник

  • Пользователи
  • PipPip
  • 21 сообщений
  • Пол:Мужчина

Отправлено 13 Апрель 2016 - 15:23

Для поля e-mail сделал такую маску
[a-z][@][a-z][.][a-z] такая маска не позволяет ввести email типа мыло@домен.рф а так же нет возможности вписать email с доменом третьего уровня email@name.domain.com подскажите пожалуйста как можно это сделать?

#16 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Апрель 2016 - 16:23

[a-z,а-я][@][a-z,а-я][.][a-z,а-я] для поддержки кириллических доменов. Для доменов третьего уровня боюсь отдельная маска нужна.

#17 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 19 Апрель 2016 - 10:45

Оказывается можно сделать номер с тире. Для тех кому нужен формат 8-xxx-xxx-xx-xx вот шаблон [8]P1N3P1N3P1N2P1N2

#18 bottrop

    Активный участник

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 10 Июль 2016 - 17:42

Просмотр сообщенияАлександр Пономарев (14 Июль 2015 - 22:49) писал:

Чтобы указать в SMS нужен формат +7.
Я писал автоисправление поля телефона для вариантов 8918 и 7918 на +7918. Может немного архаично, но работает вроде. Настраивается на сохранение поля "Телефон +7"

if ((!empty($line['Телефон +7'])) AND (strlen($line['Телефон +7'])>8)){
  $t=$line['Телефон +7'];
  $tn=$t;
  $t1=substr($t,0,1);
  $t2=substr($t,0,2);
  if ($t2=="7") {
	$tn="+7".substr($t,1);
  }
  elseif ($t1=="8") {
	$tn="+7".substr($t,1);
  }
  elseif ($t1=="9") {
	$tn="+7".substr($t,0);
  }
  $line['Телефон +7']=$tn;
}

В вашем примере, если убрать вычисление на отображение поля или выключить вычисление, то номера телефонов снова отображаются не корректно, без "+". Т.е. как понимаю ваше вычисление не перезаписывает данные в поле, а просто подменяет? Можете объяснить? Как сделать, чтобы данные именно перезаписались в нужном формате?

#19 bottrop

    Активный участник

  • Пользователи
  • PipPipPip
  • 153 сообщений
  • Пол:Мужчина
  • Город:Армавир

Отправлено 13 Июль 2016 - 19:02

ау, ребята? есть кто живой? или все по морям разъехались уже?))

#20 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 15 Июль 2016 - 09:55

Просмотр сообщенияbottrop (10 Июль 2016 - 17:42) писал:

В вашем примере, если убрать вычисление на отображение поля или выключить вычисление, то номера телефонов снова отображаются не корректно, без "+".
Если отключить вычисление, то за счет чего должны изменяться данные? Не совсем понял логику.

Просмотр сообщенияbottrop (10 Июль 2016 - 17:42) писал:

... ваше вычисление не перезаписывает данные в поле, а просто подменяет? Можете объяснить? Как сделать, чтобы данные именно перезаписались в нужном формате?
Использование кода
$line['Телефон +7']=$tn;
это и есть перезапись данных в поле Телефон +7.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных