Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

Думаю писать StringToТелефоны   Найти похожие ветки 

 
ВладОшин ©   (2014-10-15 11:25) [0]

Проще так, наверное..

Как это сейчас:
Есть сайт, там есть мемка "контакты"
пишут туда всякую ересь, т.к. поле текстовое

простые случаи
xxxxxxxxxx
8xxxxxxxxx

и посложнее
+7xxxxxxxxxx с 8 до 17
+7 xxx-xxx-xx-xx, 8xxx-xxx-xx-xx
xxxxxxxxxx. xxxxxxxxxx
xxxxxxxxxx-xxxxxxxxxx
xxxxxxxxxx---xxxxxxxxxx
xxxxxxxxxx xxxxxxxxxx
xxxxxxxxxx/xxxxxxxxxx
xxx.xxx.xxxx, 8xxx.xxx.xx.xx
xxxxxxxxxx или xxxxxxxxxx
8xxxxxxxxxx в России. xxx xxx xxxx в Таджикистане
8xxxxxxxxxx спросить Олега, если недоступен - 8xxxxxxxxxx, Игорь
(xxx xxx xx xx) (xxx xxx xx xx)
но может быть и мыло xxx@ccc.ru (или бот что-то написал) -  что не интересует

Все это падает в табличку, потом оператор смотрит в другом ПО, на форме у него есть TEdit, куда он забивает номер телефона и звонит, если юзер просил позвонить

Как это вижу:
TEdit становится комбо, с возможностью печати, как в эдит, но заполненный по возможности, вычлененными телефонами из текста..

--------

Куда посмотреть?

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

зы
задача не требует 100% охвата
процентов 80 уже хорошо
а если 90 % да x300 человек - столько времени сократится - что может премию дадут :)
обещаю пропить за здоровье подмогнувшего идеей :)


 
brother ©   (2014-10-15 11:28) [1]

те нужен парсер строк?


 
ВладОшин ©   (2014-10-15 11:34) [2]

да

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


 
DVM ©   (2014-10-15 11:40) [3]


> Как человек понимает, что это телефон..
> мы же как-то понимаем.. Как мы понимаем, что тут два телефона
>  - один через пробелы, второй через тире, а не мусор..

Это непростая задача в общем случае. Аналогичная ситуация с адресами  и именами.
Но в 99% случаев достаточно ограничить юзерам ввод в поле телефон, чем то подобным:


       /// <summary>
       /// MSISDN
       /// Допустимые форматы:
       /// +7-916-777-88-00  
       /// +7-916-777-8800  
       /// +47-916-777-88-00  
       /// +47-916-7778800  
       /// +47(916)777-88-00  
       /// +47(916)777-8800  
       /// +47(916)7778800  
       /// (916)777-88-00  
       /// (916)777-8800  
       /// (916)777-8-800  
       /// (916)7778800  
       /// 9167778800  
       /// 916-7778800  
       /// 916-777-88-00  
       /// 916-777-8-800  
       /// </summary>
       [Required(ErrorMessage = "Вы не указали MSISDN")]
       [RegularExpression(@"(^\+\d{1,2})?((\(\d{3}\))|(\-?\d{3}\-)|(\d{3}))((\d{3}\-\d{4})|(\d{3}\-\d\d\-\d\d)|(\d{7})|(\d{3}\-\d\-\d{3}))$", ErrorMessage = "Неправильно указан MSISDN")]
       [DataType(DataType.PhoneNumber)]
       [Display(Name = "MSISDN", Prompt = "Введите MSISDN", Description = "Например: +7(123)456-78-90")]
       public string Msisdn { get; set; }


 
DVM ©   (2014-10-15 11:42) [4]

потом просто отбрасываешь символы "(","-" если требуется.


 
ВладОшин ©   (2014-10-15 12:00) [5]

> Это непростая задача в общем случае.
согласен

> ограничить юзерам ввод в поле телефон
согласен, самое простое, но начальство отклонило
Клиентоориентированность
Если в html ввести под каждый вид связи свое поле - это будет проблемка для юзера.
Ему удобнее одно поле, записал абы как(там и мыло может, и скайп и что-то еще)

Фишка у нас именно в том, что обрабатывают люди. Вопросы разные, русский письменный юзера - тоже. За это и платят заказчики.

Но максимум автомата - желательно


 
brother ©   (2014-10-15 12:03) [6]

ответ не очевиден?
регулярки для каждого валидного шаблона номеров, остальное в лог на анализ, возможно еще какие регулярки сделаешь. ну, а осталное - мусор)


 
brother ©   (2014-10-15 12:04) [7]

ну и регулярки на очевидно не валидные строки, например *@*.* содержащие...


 
DVM ©   (2014-10-15 12:07) [8]


> ВладОшин ©   (15.10.14 12:00) [5]


> Если в html ввести под каждый вид связи свое поле - это
> будет проблемка для юзера.

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

Даже Яндекс или Гугл при всех своих возможностях по анализу текста никогда не используют ни в одной из форм такой метод, какой хочет ваше начальство. Это ли не аргумент?


 
brother ©   (2014-10-15 12:08) [9]

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


 
DVM ©   (2014-10-15 12:10) [10]


> brother ©   (15.10.14 12:03) [6]


> регулярки для каждого валидного шаблона номеров

Регулярки для того, что он хочет (и телефон во всех вариантах и скайп и e-mail и голубиная почта) будут страшными.


 
ВладОшин ©   (2014-10-15 12:34) [11]


> Регулярки для того, что он хочет (и телефон во всех вариантах
> и скайп и e-mail и голубиная почта) будут страшными.

да вот и да. Потом не поймешь ничего

хотя, в принципе, покрывается 80% - даже простое исключение пробелов и взятие 10 цифр справа -  т.к.  в основном и пишут просто, все подряд. Или через бробелы.

Но хотелось бы больше, остальные случаи охватить тоже, максимально


> Даже Яндекс или Гугл при всех своих возможностях по анализу
> текста

да им пишут сотни миллионов, поди. После отсева останутся миллионы. Никаких людей не напасешься перепроверять.

А нам - тысячи, после останутся пару сотен - люди вполне разберут. Они и тысячи сейчас разбирают. К тому же это надо заказчика просить свой сайт менять(сайт не наш)
Вот аргумент начальства.  Сделать все возможное, остальное просмотрят люди.


> brother ©   (15.10.14 12:08) [9]
> да и еще, перед парингом убирать НЕ числовые символы

трудно вижу 2 телефона
96-05-66-88-99 96-05-66-88-97

убирать НЕ числовые символы
96 05 66 88 99 96 05 66 88 97
если сложить все и по длине понять, что не может быть такой длинный номер,
а если разрезать пополам, то может
- то да :)

не то..


 
ВладОшин ©   (2014-10-15 12:42) [12]

Вот что думаю, такая.. несформулированная .. мысль летает

заводим табличку, пишем туда шаблоны. А именно:
Когда оператор,
- понимает глазами и руками вбивает номер,
нажимает звонить.

Мы пишем номер(введеный оператором) и все позиции цифр с символами между ними
из строки в таблицу. Получаем шаблон.

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

Если  шаблон применился, и оператор согласился с результатом - увеличиваем вес шаблона
(т.е. - , шаблоны применяются по приоритету весов.. так получается)

смысл - чем больше писем разобрано, тем больше шаблонов, тем больше  должен понимать

вот как-то так  - чем больше прогу юзают, тем "умнее" становится


 
DVM ©   (2014-10-15 12:57) [13]


> ВладОшин ©   (15.10.14 12:42) [12]

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


 
brother ©   (2014-10-15 13:12) [14]

[11] ну, ясно понятно, что нектороые спец символы нужно оставить )


 
Дмитрий Белькевич ©   (2014-10-15 21:39) [15]

>Как человек понимает, что это телефон..

мне кажется, стоит искать коды в начале номеров и/или какие-то общие цифры:

>96-05-66-88-99 96-05-66-88-97

>пишут туда всякую ересь, т.к. поле текстовое

ограничить несколькими (десятком) форматов принципиально невозможно?


 
ВладОшин ©   (2014-10-16 10:06) [16]

да не знай..
что-то решают, посмотрим к чему придут. Пока отложили
дня через 2, к понедельнику, придет распоряжение И
или все проще будет, телефон будет отдельной строкой, заданного формата  
или продолжим  :)



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.041 c
3-1304102314
Tirael
2011-04-29 22:38
2015.09.10
как можно "залочить" записи?


15-1415050205
Юрий
2014-11-04 00:30
2015.09.10
С днем рождения ! 4 ноября 2014 вторник


15-1416494832
alexdn
2014-11-20 17:47
2015.09.10
Как настроить редирект


15-1416493349
aka
2014-11-20 17:22
2015.09.10
поворот отрезка


2-1393852098
XCoder
2014-03-03 17:08
2015.09.10
ком-сервер