Форум: "Прочее";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];
ВнизДумаю писать 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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.049 c