2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444

Проверка текста на допустимые символы

08.07.2015, 19:17. Показов 7075. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Вот надо сделать проверку текста (логин) на допустимые символы.
Нужные символы задал так:
Delphi
1
2
3
4
var
s: Ansistring = 'nord76';
...
if not CharInSet(s[i],['А'..'Я', 'а'..'я', 'A'..'Z', 'a'..'z', '0'..'9', '_', '.', '-', ' ']) then ShowMessage('Неправильный логин');
Как мне сделать проверку, что если введены какие-нибудь символы ('_', '.', '-', ' ') но нет букв любого алфавита(рус. или англ.), то тоже выдать сообщение о неправильном логине?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2015, 19:17
Ответы с готовыми решениями:

Проверка содержимого StringGrid.Cells на допустимые символы
Собственно проблема в следующем - нужно организовать проверку содержимого StringGrid.Cells на предмет того, что допустимые символы - только...

Установить разные допустимые символы в StringGrid по столбцам
По мере заполнения StringGrid’а добавляются строчки, но нужно сделать так,чтобы в 1-ом столбце было 3 цифри латинские, во втором до 20...

Проверка на допустимые символы
Понимаю, что затёртая тема и куча инфы в инете, но не могу на свой пример интерпретировать их, подскажите как правильно сделать? if...

11
96 / 84 / 49
Регистрация: 17.09.2014
Сообщений: 670
08.07.2015, 19:29
Cannon1, как один из вариантов...
Delphi
1
2
3
4
5
6
7
8
9
    ok:=false;
    s:='MyLogin';
    for i:=1 to length(s) do
    if s[i] in ['А'..'Я', 'а'..'я', 'A'..'Z', 'a'..'z'] then
    begin
       ok:=true;
       break;
    end;
    if not ok then ShowMessage('Неправильный логин');
1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
08.07.2015, 19:44  [ТС]
Спасибо, приблизительно работает, только немного не точно. Если я первым символом захочу поставить например "-" а потом буквы, то выдаёт неправильный ник.
Подправьте пожалуйста.
Ещё бы упростить как-нибудь.

Добавлено через 3 минуты
Ой, прошу прощения, вроде работает правильно, упростить если только.
Я "if not ok then ShowMessage('Неправильный логин');" в цикле случайно прописал.
0
96 / 84 / 49
Регистрация: 17.09.2014
Сообщений: 670
08.07.2015, 19:48
Cannon1, я так понимаю логин вводится с клавы...и в поле Edit...можно ограничить ввод недопустимых символов в обработке Edit1KeyPress. Код поиска букв в логине забить в отдельную функцию.
0
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
08.07.2015, 19:49  [ТС]
Нет, у меня с клиента на сервер приходит в тхт переменной логин, никаких едитов.
Точнее в клиенте едит на граф. движке рисованный, а не компонент, там нет этих свойств.
0
96 / 84 / 49
Регистрация: 17.09.2014
Сообщений: 670
08.07.2015, 19:57
Cannon1, Тогда просто оформить проверку как отдельную функцию, можно запихнуть в другой модуль, чтобы не загромождала основной код.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
const str=['А'..'Я', 'а'..'я', 'A'..'Z', 'a'..'z'];
function CheckLogin(s:string):boolean;
var i:integer;
begin
    Result:=false;
    for i:=1 to length(s) do
       if CharInSet(s[i],str) then
       begin
           Result:=true;
           Exit;
      end;
end;
1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
08.07.2015, 20:14  [ТС]
Продолжу вопрос с символами:

Подскажите пожалуйста, как найти в тексте, если есть два символа подряд из указанных('_', '.', '-', ' '),
то вывести ShowMessage('Неправильный логин') ?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2015, 20:22
Delphi
1
2
3
4
5
6
7
m:=['_', '.', '-', ' '];
k:=0;
i:=1;
while(i<length(text))and(k=0) do
if (s[i] in m)and(s[i+1]in m) then k:=1
else inc(i);
if k=0 then ....
1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
08.07.2015, 20:34  [ТС]
Что-то не так немного работает.
Во первых работает если сделать if k<>0 then ShowMessage('Неправильный логин') ;
А во вторых проверяет только первый символ из множества, тоесть "_" .
Если первым сделать один символ "-", то пишет неправильный ник, хотя должен быть нормальным.

Вот этот ник проходит- _NIck, а вот такой уже не пропускает- -NIck .
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2015, 20:38
Какую-то хрень пишешь.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var m:set of char;
    text:string;
    i,k:integer;
begin
.....................
m:=['_', '.', '-', ' '];
k:=0;
i:=1;
while(i<length(text))and(k=0) do
if (s[i] in m)and(s[i+1]in m) then k:=1
else inc(i);
if k=0 then  ShowMessage('Правильный логин')
else  ShowMessage('Неправильный логин') ;
1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 444
08.07.2015, 21:00  [ТС]
Спасибо, вроде работает.
Вместо text - s надо только. По скольку s у меня глобальная, то text:string; вообще не надо.
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2015, 21:02
Цитата Сообщение от Cannon1 Посмотреть сообщение
Вместо text - s надо только.
Да хоть папу римского...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2015, 21:02
Помогаю со студенческими работами здесь

Проверка: содержит ли строка допустимые символы?
Добрый день. Строка вводиться пользователем. В сроке допустимы следующие символы - от 0 до 9 и .(точка). Такой вариант работает ...

Регулярное выражение для проверки текста на допустимые символы
Доброго времени суток. прошу помощи составить следующее регулярное выражение: разрешены любые русские и английские буквы, а так же...

Допустимые символы в description
Допустимо ли в description использовать кавычки и скобки? Не отсекаются ли они при выдаче? Тоже самое интересует и про title

Допустимые символы в TextBox
Как сделать, чтобы в текстбокс можно было вводить только буквы? Добавлено через 25 минут Как сделать проверку строки только на...

Допустимые символы в title, description
Что то я не могу найти. Какие символы могут быть в этих тегах, ну и в общем в head. Там еще keywords и прочее. Я думаю слова, ну еще ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru