|
Проверка символов в строке | ☑ | ||
---|---|---|---|---|
0
88g88
03.02.17
✎
15:41
|
Приветствую вас форумчане.
Есть строка, номер телефона. надо проверить на корректность заполнения. По формату или посимвольно. в примере посимвольный перебор получаю цифру 7 а проверить хочу в диапазоне от 0 до 9. чтобы буквы не совали или другие символы. Пример кода вопрос в условии "иначе если" СЧ = 1; Длина = СтрДлина(Поле1); Пока СЧ <= Длина цикл ТекСимвол = Сред(Поле1,СЧ,1); Если (Сч = 1 и ТекСимвол = "+") Тогда СЧ = СЧ + 1; Продолжить; ИначеЕсли Сч = 2 и (ТекСимвол = 0 или Тогда СЧ = СЧ + 1; Продолжить; Иначе Сообщить("Поле (код страны) должен содержать значение в виде (+7)"); Возврат ложь; КонецЕсли; КонецЦикла; |
|||
1
Масянька
03.02.17
✎
15:45
|
(0) Сначала строки и до конца - перебор символов.
По счетчику (из перебора) получаешь символов и проверяешь его код. PS Код лень писать. |
|||
2
88g88
03.02.17
✎
15:48
|
(1) так можно и бех кода проверить на значение грубо (ТекСимвол =1,ТекСимвол =2,3 и т.д.) Умных решений нет для этого? а алфавитные символы не проверяют? серии к примеру...
|
|||
3
f_vadim
03.02.17
✎
15:49
|
регулярные выражения нужно осваивать. и потом пригодится.
|
|||
4
88g88
03.02.17
✎
15:49
|
Задача вроде пустяковая а решения найти не могу, кроме перебора.
|
|||
5
Масянька
03.02.17
✎
15:49
|
(2) Без кода - это совсем грубо. Я - не мазохист.
|
|||
6
Ёпрст
03.02.17
✎
15:50
|
Для нумера телефона или делать маску ввода в поле,
Или регуляркой проверять потом. Если перебором, то либо СтрНайти("0123456789",СимволТвой)>0 Тогда цифра или Попытка Число(СимволТвой) ..в исключении - не цифра. |
|||
7
Heckfy
03.02.17
✎
16:19
|
ИМХО сделать маску и не парить мозг.
|
|||
8
88g88
03.02.17
✎
16:24
|
(7) а пример?
|
|||
9
88g88
03.02.17
✎
16:28
|
(6) А в условии как это сделать?
|
|||
10
Heckfy
03.02.17
✎
16:29
|
В свойствах поля ввода на форме ищи Маска. Вбивай туда: +7 999 999 99 99
|
|||
11
h-sp
03.02.17
✎
16:37
|
(9) поиск во всех текстах запусти в конфе слова
0123456789 оттуда скопируй к себе. чего париться? |
|||
12
88g88
06.02.17
✎
13:09
|
(10) маска вносит не меняемые значения в поле. Аволе должно меняться но проверяться на содержание.
|
|||
13
mkalimulin
06.02.17
✎
13:12
|
(0) В диапазоне от 0 до 9 записывается как:
>="0" и <="9" |
|||
14
nordbox
06.02.17
✎
13:17
|
||||
15
88g88
06.02.17
✎
13:19
|
(13) сравнение с переменной не катит. поле изначально строка. Тип значения тоже строка. 1с материться ))))
(11) нашел проверяю. есть такой вариант: ДопустимыеСимволы = "0123456789"; Для Сч = 1 по СтрДлина(Код) Цикл Символ = Сред(Код, Сч, 1); Если Не Найти(ДопустимыеСимволы, Символ) Тогда ОбщегоНазначения.СообщитьОбОшибке( НСтр("ru = 'Обнаружены недопустимые символы. Номер контракта может содержать только цифры.'"), Отказ); Прервать; КонецЕсли; КонецЦикла; |
|||
16
mkalimulin
06.02.17
✎
13:31
|
(15) Ты чего-то путаешь. Строки сравниваются так же, как и числа. Я тебе по секрету скажу: они на самом деле и есть числа.
|
|||
17
88g88
06.02.17
✎
13:38
|
(16) значения 12345 по счетчику как
если СЧ >= 0 и СЧ <=9 тогда 1с говорит что сравнить не могу и веские причины. хотя в конкретном значении СЧ в этот момент к примеру "3" тип строка. |
|||
18
88g88
06.02.17
✎
13:46
|
(13) (16) хотя тут прав возможно по причине отсутствия "" просто число писал без кавычек. Не уверен что принципиально, для 1с вроде что 9 что "9" один ***. )))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |