|
Преобразование строки в массив | ☑ | ||
---|---|---|---|---|
0
drcrasher
31.05.16
✎
10:54
|
Господа, имею вопрос.
Дано: строка телефонов, которая приходит с сайта в виде - "8-999-111-22-33 вася" - "7 999 111 2233 вася 8-999-222-3-444 петя звонить после 11" и им подобные. Требуется: разложить всю эту канитель в нормальный вид: -79991112233 + комментарий в КИ Вася -79992223444 + комментарий в КИ Петя звонить после 11 Есть мысли, как такое можно реализовать программно? Вариант "менеджер коллцентра должен править" рассматривается, но хочется автоматизации. |
|||
1
Nuobu
31.05.16
✎
10:55
|
(0) Телефон до первой буквы?
|
|||
2
drcrasher
31.05.16
✎
10:57
|
(1) а если будет что-то типа "вася 8999 000 11 11"?
Вообще, я даже и представить не могу, какая каша в КИ на самом деле может встречаться. |
|||
3
DDwe
31.05.16
✎
10:59
|
(2) Видимо регулярки тебе в помощь.
|
|||
4
Mikeware
31.05.16
✎
10:59
|
регулярные выражения....
|
|||
5
Mikeware
31.05.16
✎
11:00
|
(3) баян же ж, не правда ли? :-)
|
|||
6
DDwe
31.05.16
✎
11:03
|
(5) )))
|
|||
7
drcrasher
31.05.16
✎
11:04
|
(3)(4) хорошая мысль
|
|||
8
DDwe
31.05.16
✎
11:05
|
(7) Она не просто хорошая, она может оказаться единственно верной в твоей ситуации. ))
|
|||
9
Рэйв
31.05.16
✎
11:09
|
(0)Бардак систематизировать нельзя. Сначала придется причесать к какому то одному виду. Хотябы первое- это что телефон идет всегда первым. Или наоборот. Иначе это нереально
|
|||
10
drcrasher
31.05.16
✎
11:15
|
(8) осталось придумать, каким образом всё это выковыривать
(9) в этом и проблема. |
|||
11
1Сергей
31.05.16
✎
11:16
|
(10) если не так много элементов. то проще посадить обезьянку, которая распишет всё по полям
|
|||
12
DDwe
31.05.16
✎
11:17
|
(10) Пишешь релулярку, подсовываешь свою строку, потом втрорую, третью... и так пока фантазия не иссякнет. Не работает? Правишь регулярку, работает - вуаля.
|
|||
13
DDwe
31.05.16
✎
11:20
|
Телефоны ты вытащишь, а вот как ты это разбирать будешь ""7 999 111 2233 вася 8-999-222-3-444 петя звонить после 11" ", что к кому относится, я не знаю.
|
|||
14
DDwe
31.05.16
✎
11:21
|
(13)+ С другой стороны, напишешь маленькую, самообучающуюся нейронную сеть и проблемы нет. )))
|
|||
15
Mikeware
31.05.16
✎
11:23
|
(13) все, что до очередного телефона - относится к предыдущему.
|
|||
16
DDwe
31.05.16
✎
11:25
|
(15) Ну, это мы так можем решить, а тот кто пишет эту ахинею, может думать по другому.
|
|||
17
drcrasher
31.05.16
✎
11:26
|
(11) обезьянки сопротивляются (пока).
(14) ну это самое простое %) (16) ту не представляешь, насколько прав. иногда там встречаются паспортные данные и адреса |
|||
18
VladZ
31.05.16
✎
11:29
|
(0) А можно сделать так, чтобы с сайта информация приходила в виде :
<телефон>; <контактное лицо>; <информация> ??? |
|||
19
drcrasher
31.05.16
✎
11:33
|
(18) проблема в том, что эту инфу забивает покупатель. Заставить его вносить корректно - не реально
|
|||
20
DDwe
31.05.16
✎
11:35
|
(19) Опаньки....
А он у тебя куда забивает? |
|||
21
Mikeware
31.05.16
✎
11:36
|
(19) почему "не реально"?
регулярки точно так же могут проверять телефон и на сайте |
|||
22
Mikeware
31.05.16
✎
11:36
|
(20) в косяк?
|
|||
23
DDwe
31.05.16
✎
11:37
|
(19) + Ты дай ему поля, что бы не было выбора и свободы и все.
|
|||
24
drcrasher
31.05.16
✎
11:37
|
(20) чего "опаньки"? В (0) же сразу написал об этом %)
в обычный инпут (22) похоже (21) иногда этот набор букв забивают и в оффлайн магазине. |
|||
25
drcrasher
31.05.16
✎
11:38
|
(23) мы ушли от вопроса разбора бардака к правильному подходу, но до подхода пока, к сожалению, далеко
|
|||
26
DDwe
31.05.16
✎
11:39
|
(25) Так почему нельзя разделить всё по полям ввода?
|
|||
27
drcrasher
31.05.16
✎
11:40
|
(26) насколько я понимаю, на сайте такая структура базы и страниц, что распилить не получится. но не уверен.
|
|||
28
drcrasher
31.05.16
✎
15:33
|
а подскажите, что же ему тут не нравится?
Функция СодержитТолькоЦифры(Стр) // считаем, что телефон может содержать цифры, // + , - () Валидатор = "/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/"; РегЭксп.Pattern = Валидатор; РегЭксп.IgnoreCase = Истина; РегЭксп.Global = Истина; Рез = РегЭксп.Execute(Стр); ЧислоВх = Рез.Count(); ----- 0??? Возврат Истина; КонецФункции РегЭксп = Новый COMОбъект("VBScript.RegExp"); // Новый("RegExp"); Стр = "8-999-111-22-33"; |
|||
29
Timon1405
31.05.16
✎
15:57
|
(28) 1. слеши по бокам лишние
Валидатор = "^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$"; 2. если нужна только проверка можно использовать функцию РегЭксп.Test(Стр); |
|||
30
drcrasher
31.05.16
✎
16:11
|
(29) ага, спасибо
|
|||
31
drcrasher
31.05.16
✎
18:49
|
Ну что. Победила обработка =)
Если кому нужно - могу выложить. |
|||
32
DDwe
31.05.16
✎
19:16
|
(31) Давай, любопытно.
|
|||
33
Гобсек
01.06.16
✎
04:39
|
(31)выложи в книгу знаний
|
|||
34
VladZ
01.06.16
✎
05:16
|
(27) В наше время можно в космос полететь. Не поверю, что нельзя сделать нужную тебе структуру на сайте.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |