|   |   | 
| 
 | Проверить текст на вхождение сразу нескольких символов | ☑ | ||
|---|---|---|---|---|
| 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 | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |