Автор Тема: Шаблон для тел. номера  (Прочитано 551 раз)

Albawarden

  • Гость
Шаблон для тел. номера
« : Апрель 14, 2016, 11:26:34 am »
написал проект по оформлению типовых договоров . Для сокращения времени оформления хотел бы что бы пользователь вводил номер телефона без дефисов , а программа сама вставляла в нужных местах дефисы. Пример : пользователь вбивает 89997775566 , а в договоре печатается 8-999-777-55-66

runa.natalia

  • Главный модератор
  • Подмастерье
  • **
  • Сообщений: 118
  • Благодарностей 9
  • vk.com/runabase
Re: Шаблон для тел. номера
« Ответ #1 : Апрель 14, 2016, 12:32:28 pm »
Это можно сделать при обязательном условии, что телефон будет вводиться с фиксированной длиной (этого можно добиться с помощью задания регулярного выражения).
А далее используйте составное поле, разбирающее поле телефона по символам, например:
[1(Телефон)]-[2(Телефон)][3(Телефон)][4(Телефон)]-[5(Телефон)] и т.д.
Информация о новых версиях и список изменений: http://vk.com/runabase

Albawarden

  • Гость
Re: Шаблон для тел. номера
« Ответ #2 : Апрель 14, 2016, 12:38:05 pm »
вы имеете вввиду точное количество знаков ? ....т.е. в случае с мобильным это 11

runa.natalia

  • Главный модератор
  • Подмастерье
  • **
  • Сообщений: 118
  • Благодарностей 9
  • vk.com/runabase
Re: Шаблон для тел. номера
« Ответ #3 : Апрель 14, 2016, 12:41:50 pm »
с фиксированной длиной
Это и означает точное количество знаков.
Информация о новых версиях и список изменений: http://vk.com/runabase

advokat

  • Посвященный
  • **
  • Сообщений: 96
  • Благодарностей 4
Re: Шаблон для тел. номера
« Ответ #4 : Апрель 14, 2016, 03:59:22 pm »
Взял Ваше выражение для телефонного номера из справки
Цитировать
^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$
Всё работает, но выражение не позволяет оставить поле пустым. Можно это выражение переделать, чтобы база позволяла не заполнять это поле?

d.nikolaev

  • Administrator
  • Подмастерье
  • ***
  • Сообщений: 127
  • Благодарностей 0
Re: Шаблон для тел. номера
« Ответ #5 : Апрель 14, 2016, 04:26:42 pm »
Вот пример моего регулярного выражения

^[+][ ]([0-9]|.{,1})[ ]([0-9]|.{,3})[ ]([0-9]|.{,3})[ ]([0-9]|.{,2})[ ]([0-9]|.{,2})$



^ - начало выражения
[+] - можно ввести только плюс
[ ] - можно ввести только пробел
([0-9]|.{,1}) - группировка двух условий. [0-9] - можно ввести только цифры от нуля до девяти. .{,1} - можно ввести только одну цифру. Разделитель выражений - |
« Последнее редактирование: Апрель 14, 2016, 04:33:31 pm от d.nikolaev »

advokat

  • Посвященный
  • **
  • Сообщений: 96
  • Благодарностей 4
Re: Шаблон для тел. номера
« Ответ #6 : Апрель 14, 2016, 07:23:16 pm »
Из любопытства. А зачем пробел после "+".
Регулярными выражениями можно добавлять символы?

d.nikolaev

  • Administrator
  • Подмастерье
  • ***
  • Сообщений: 127
  • Благодарностей 0
Re: Шаблон для тел. номера
« Ответ #7 : Апрель 14, 2016, 08:31:13 pm »
Пробел после плюса, так захотелось заказчику. Регулярные выражения

Albawarden

  • Гость
Re: Шаблон для тел. номера
« Ответ #8 : Апрель 15, 2016, 08:46:05 am »
что значит Регулярное выражение ? и где его прописывать ?

d.nikolaev

  • Administrator
  • Подмастерье
  • ***
  • Сообщений: 127
  • Благодарностей 0
Re: Шаблон для тел. номера
« Ответ #9 : Апрель 15, 2016, 10:22:54 am »
Регулярное выражение прописывается в маску поля, чтобы задать условия для вводимых данных. Более подробно можно прочитать здесь Регулярные выражения. Вот пример где задается регулярное выражение, поле Маска.


Albawarden

  • Гость
Re: Шаблон для тел. номера
« Ответ #10 : Апрель 15, 2016, 10:27:37 am »
идея в том чтобы оператор вбивал номер как ему удобно , без пробелов , дефисов  - а в документе прописывал правельно. А ваше регулярное выражение к сожалению требует правильного ввода. Хочется максимально ускорить работу оператора

d.nikolaev

  • Administrator
  • Подмастерье
  • ***
  • Сообщений: 127
  • Благодарностей 0
Re: Шаблон для тел. номера
« Ответ #11 : Апрель 15, 2016, 11:09:58 am »
Я лишь ответил на ваш вопрос выше. Я понимаю что это не ответ для главного вопроса темы. А ваш вопрос был - что значит Регулярное выражение ? и где его прописывать?

runa.natalia

  • Главный модератор
  • Подмастерье
  • **
  • Сообщений: 118
  • Благодарностей 9
  • vk.com/runabase
Re: Шаблон для тел. номера
« Ответ #12 : Апрель 15, 2016, 11:32:05 am »
Сложное регулярное выражение для задания телефонного номера захотел advokat. А вам можно задать регулярное выражение только для ввода определённого количества символов. Например, \d{11}

Это можно сделать при обязательном условии, что телефон будет вводиться с фиксированной длиной (этого можно добиться с помощью задания регулярного выражения).
А далее используйте составное поле, разбирающее поле телефона по символам...
Информация о новых версиях и список изменений: http://vk.com/runabase

advokat

  • Посвященный
  • **
  • Сообщений: 96
  • Благодарностей 4
Re: Шаблон для тел. номера
« Ответ #13 : Апрель 15, 2016, 11:44:42 am »
Albawarden хотел чтобы оператор вбивал номер как ему угодно, а в базу он вносился в красивом виде +7-900-000-00-00 уже с чёрточками в нужном месте.
На это счёт ему ответила runa.natalia - только с помощью поля составное через функцию string.
Идея прикольная я у себя попробую так сделать.

advokat

  • Посвященный
  • **
  • Сообщений: 96
  • Благодарностей 4
Re: Шаблон для тел. номера
« Ответ #14 : Апрель 15, 2016, 11:47:12 am »
Про функцию string я перегнул, не было такого  ;)

 

Яндекс.Метрика