Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Сообщить о недопустимых символах

Сообщить о недопустимых символах
Я
   Shouldercannon
 
07.04.21 - 10:32
Доброго времени суток!
Есть строка с таким содержимым: |67894376|
Подскажите, пожалуйста, как проверить строку на наличие посторонних символов. Если в строке есть что-то помимо | или цифр от 0 до 9, то сообщить об этом.
   Shouldercannon
 
1 - 08.04.21 - 18:06
Функция НайтиСимволы(Строка)    
    Для Сч = 1 По СтрДлина(Строка) Цикл
        Если Найти("|0123456789", Сред(Строка, Сч, 1)) = 0 Тогда
            Возврат Истина;
            Прервать;
        КонецЕсли; 
    КонецЦикла;
    
    Возврат Ложь;

КонецФункции

   Garykom
 
2 - 08.04.21 - 18:20
(1) мдя
   dka80
 
3 - 08.04.21 - 18:46
Если стрразделить(твоястрока,"0123456789").количество() тогда естькривыесимволы
   dka80
 
4 - 08.04.21 - 18:50
А вообще, в бсп есть функциЯ. Что-то вроде общегоназначенияклиентсервер.толькоцифры(твоястрока)
   Garykom
 
5 - 08.04.21 - 19:48
(3) хрень написал
   mikecool
 
6 - 08.04.21 - 20:56
регулярки не предлагать?
   dka80
 
7 - 08.04.21 - 20:58
(5) ты специалист, конечно, кто спорит. Только ни одной умной мысли не высказал.
   Garykom
 
8 - 08.04.21 - 21:13
(7) СтрЗаменить символы в проверяемой строке на "" в цикле по своим "|0123456789"

Типа
СтрЗаменить(ПроверяемаяСтрока, "|", "");
СтрЗаменить(ПроверяемаяСтрока, "0", "");
СтрЗаменить(ПроверяемаяСтрока, "1", "");
и т.д.

Если остаток не пустая строка = есть левые
   dka80
 
9 - 08.04.21 - 21:35
(8) почитай СП к стрзаменить и ты увидишь, что "0123456789" рассматривается как каждый символ разделителя в отдельности
   dka80
 
10 - 08.04.21 - 21:41
+9 сп к стрразделить
   acht
 
11 - 09.04.21 - 00:02
(3) Палку и Ложь забыл, специалист
   Garykom
 
12 - 09.04.21 - 00:45
(9) ты проверишь наличие/отсутствие хороших символов же
а не левых
   dka80
 
13 - 09.04.21 - 06:41
(12) ты не прав. Строка вида $#@1265па превратится в массив $,#,@,п,а. Соответственно если массив не пустой, то левые символы есть.
(11) какая, "ложь" в строке, недоспециалист?
   dka80
 
14 - 09.04.21 - 06:43
И для все "умных": данный метод очень неплохо работает в типовых при разборе телефонных номеров
   Garykom
 
15 - 09.04.21 - 09:10
(13) ложь в смысле
"ВключатьПустые (необязательный)    Булево    Указывает необходимость включать в результат пустые строки, которые могут образоваться в результате разделения исходной строки. Значение по умолчанию: Истина"
   Garykom
 
16 - 09.04.21 - 09:10
(14) правильный метод с правильными параметрами, а у тебя хрень
   acht
 
17 - 09.04.21 - 09:32
(13) У СтрРазделить три параметра, позорник
   dka80
 
18 - 09.04.21 - 11:13
(17) для долбоящеров поясняем: я не делал на заказ задачу, потом пытаясь ее сдать, доказывая что она 100% рабочая. Это общий принцип. А ты, лучше бы написал как надо, вместо того, чтобы кашей изо рта брызгать. Кстати, ты не Андрей Частиков, случаем?
(16) хрень у тебя в голове, потому что кроме как мычать что-то нечленораздельное как в (2) тебя более ни на что не хватает
(15) молодец, вот если бы ты исправил это заметил с самого начала, то тебе вообще цены бы не было
   dka80
 
19 - 09.04.21 - 11:14
(16) и вместо (8) лучше уж сделать цикл, чем один и тот же метод десять раз писать
   mikecool
 
20 - 09.04.21 - 11:22
решение нашли или продолжаете мериться?
   Garykom
 
21 - 09.04.21 - 12:02
(18) >молодец, вот если бы ты исправил это заметил с самого начала, то тебе вообще цены бы не было
читать научись: "хрень написал", "ты проверишь наличие/отсутствие хороших символов же а не левых"

>и вместо (8) лучше уж сделать цикл, чем один и тот же метод десять раз писать
читать научись: "СтрЗаменить символы в проверяемой строке на "" в цикле по своим "|0123456789""
   acht
 
22 - 09.04.21 - 12:27
(18) Да ты никак обиделся?
   dka80
 
23 - 09.04.21 - 12:39
(21) тебя кто с людьми так учил разговаривать, епт? (с)
   dka80
 
24 - 09.04.21 - 12:40
(22) ты на вопрос не ответил


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.