|
Проверить текст на вхождение сразу нескольких символов | ☑ | ||
---|---|---|---|---|
0
antihacker
13.06.18
✎
08:54
|
Всем привет ! В теме вопрос уже озвучен. Нужно проверить текст. Есть ли в тексте числа(цифра) ? Знаю можно прогнать текст по циклу и проверить каждую букву на каждое число от 0 до 9. По проще нельзя ?
|
|||
1
1Сергей
13.06.18
✎
08:55
|
Если Найти(Текст, "0")>0
ИЛИ Найти(Текст, "1")>0 ИЛИ Найти(Текст, "2")>0 ... Тогда |
|||
2
Lexey_
13.06.18
✎
08:55
|
(0) регулярки
|
|||
3
Ненавижу 1С
гуру
13.06.18
✎
09:05
|
ЦифраЕсть = Ложь;
Для й=0 по 9 цикл Если Найти(Текст,Строка(й))>0 Тогда ЦифраЕсть = Истина; Прервать; КонецЦикла; КонецЦикла; |
|||
4
Гипервизор
13.06.18
✎
09:10
|
(1)(3) И где здесь вхождение сразу нескольких символов?
|
|||
5
Ненавижу 1С
гуру
13.06.18
✎
09:11
|
(4) Цитата из текста автора поста: "Нужно проверить текст. Есть ли в тексте числа(цифра) ?"
|
|||
6
Cyberhawk
13.06.18
✎
09:12
|
СимволыДляПроверки = "0123456789"
Для и = 0 по СтрДлина(СтрокаКандидат) Цикл Если Найти(СимволыДляПроверки, СтрокаКандидат[и]) Тогда... |
|||
7
antihacker
13.06.18
✎
09:15
|
Регулярки не приемлю, так как не хочу зависит от внешних компонентов.
|
|||
8
novichok79
13.06.18
✎
09:16
|
(0) ну тут либо регулярки, либо перебор символов.
раз не надо регулярок, то остается перебор символов. к счастью в типовых уже все придумано до нас Функция ТолькоЦифрыВСтроке(Знач СтрокаПроверки, УчитыватьЛидирующиеНули = Истина, УчитыватьПробелы = Истина) Экспорт Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда Возврат Ложь; КонецЕсли; Если НЕ ЗначениеЗаполнено(СтрокаПроверки) Тогда Возврат Истина; КонецЕсли; Если НЕ УчитыватьПробелы Тогда СтрокаПроверки = СтрЗаменить(СтрокаПроверки, " ", ""); КонецЕсли; Если НЕ УчитыватьЛидирующиеНули Тогда НомерПервойЦифры = 0; Для а = 1 По СтрДлина(СтрокаПроверки) Цикл НомерПервойЦифры = НомерПервойЦифры + 1; КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1)); Если КодСимвола <> 48 Тогда Прервать; КонецЕсли; КонецЦикла; СтрокаПроверки = Сред(СтрокаПроверки, НомерПервойЦифры); КонецЕсли; Для а = 1 По СтрДлина(СтрокаПроверки) Цикл КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1)); Если НЕ (КодСимвола >= 48 И КодСимвола <= 57) Тогда Возврат Ложь; КонецЕсли; КонецЦикла; Возврат Истина; КонецФункции |
|||
9
FIXXXL
13.06.18
✎
09:19
|
Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1)); Если (КодСимвола >= 48 И КодСимвола <= 57) Тогда ЕстьЦифра = Истина; КонецЕсли; КонецЦикла; |
|||
10
azt-yur
13.06.18
✎
09:23
|
Можно через запрос:
ВЫБРАТЬ &Текст ПОДОБНО "%[0123456789]%" КАК ЕстьЦифры |
|||
11
novichok79
13.06.18
✎
09:24
|
(10) как вариант, кстати. правда по скорости хз как оно.
|
|||
12
antihacker
13.06.18
✎
09:25
|
Тоже думал. Но запрос работает на сервере. Будет лишинй раз грузить сервер.
|
|||
13
МихаилМ
13.06.18
✎
09:29
|
||||
14
igorPetrov
13.06.18
✎
09:39
|
(7) Так и скажи, что не осилил ))))
|
|||
15
olegves
13.06.18
✎
09:48
|
(0) Если КодСимвола(Проверяемый, Номер)>47 И КодСимвола(Проверяемый, Номер)<59 Тогда
Это Число = Истина; КонецЕсли; |
|||
16
Сти
13.06.18
✎
09:57
|
(7) зачем внешние компоненты для регулярок? Пользуюсь вот таким и бед не знаю: http://catalog.mista.ru/public/464971/
|
|||
17
Сти
13.06.18
✎
09:58
|
+16 ой, опоздал, уже было в (13) )
|
|||
18
DrShad
13.06.18
✎
10:02
|
(7) RegExp во всех осях есть
|
|||
19
МихаилМ
13.06.18
✎
11:03
|
+(18)
|
|||
20
МихаилМ
13.06.18
✎
11:03
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |