Russian Qt Forum
Ноябрь 25, 2024, 03:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRegExp разрешение на ввод только цифр, запятой, пробела и минуса  (Прочитано 5091 раз)
Mashko
Гость
« : Январь 21, 2011, 17:49 »

Ребят, подскажите, не могу подобрать нужное выражение.
Нужно сделать на поле, где вводится три double-числа через пробел, "защиту от дурака".

Например,
надо чтобы в QLineEdit забивалась такая строка: -73.000 54.000 0.000.

Пыталась использовать
Код:
 QRegExp regExp("\\W^\\.\\-");
QRegExpValidator *validator = new QRegExpValidator(regExp, this);
lineEdit->setValidator(validator);

Не помогло =(

Записан
shirushizo
Гость
« Ответ #1 : Январь 21, 2011, 19:52 »

Я в регулярных не очень силен
Код:
QRegExp("(-{0,1}\\d{1,5}[.]\\d{3,3}[ ]){3}")
три 5-ти разрядных числа с 3-мя дробными разрядами, разделенные пробелом. Только после 3-го числа пробел получился обязательным Грустный
можно написать "-{0,1}\\d{1,5}[.]\\d{3,3}[ ]-{0,1}\\d{1,5}[.]\\d{3,3}[ ]-{0,1}\\d{1,5}[.]\\d{3,3}", но некрасиво.
Записан
Mashko
Гость
« Ответ #2 : Январь 22, 2011, 10:42 »

Спасибо, но немного не то. Не подходит для случая если пользователь захочет ввести просто, допустим, 75. Может лучше через QDoubleValidator делать, только тогда не понятно как пробел обрабатывать
Записан
Тортег
Гость
« Ответ #3 : Январь 22, 2011, 19:46 »

Код:
^ (-)? \d{1,5} (\.\d{1,5})? \s (-)? \d{1,5} (\.\d{1,5})? \s (-)? \d{1,5} (\.\d{1,5})?  $

Какое-то такое быдло-выражение выходит. Пробелы для читаемости оставил, доэкранируйте сами)) Не проверял Улыбающийся

> Может лучше через QDoubleValidator делать, только тогда не понятно как пробел обрабатывать
Может разбить по пробелу в массив и каждый проверить, не?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 21.