Spec-Zone.ru › Qt 5.6

Класс QRegExpValidator

Класс QRegExpValidator используется для проверки строки по регулярному выражению. Подробнее...

Заголовок: #include <QRegExpValidator>
qmake: QT += gui
Инициализируется: RegExpValidator
Наследует: QValidator
  • Список всех членов, включая унаследованные

Свойства

  • regExp : QRegExp
  • 1 свойство унаследовано от QObject

Открытые функции

QRegExpValidator(QObject *parent = Q_NULLPTR)
QRegExpValidator(const QRegExp &rx, QObject *parent = Q_NULLPTR)
~QRegExpValidator()
const QRegExp & regExp() const
void setRegExp(const QRegExp &rx)

Переопределённые открытые функции

virtual QValidator::State validate(QString &input, int &pos) const
  • 4 открытых функции унаследованы от QValidator
  • 31 открытых функции унаследованы от QObject

Дополнительные унаследованные члены

  • 1 открытый слот унаследован от QObject
  • 1 сигнал унаследован от QValidator
  • 2 сигнала унаследованы от QObject
  • 11 статических открытых членов унаследованы от QObject
  • 9 защищённых функций унаследованы от QObject

Подробное описание

Класс QRegExpValidator используется для проверки строки по регулярному выражению.

QRegExpValidator использует регулярное выражение (regexp), чтобы определить, является ли входная строка Приемлемой, Промежуточной или Недействительной. Регулярное выражение можно указать при создании QRegExpValidator или позднее.

При определении QRegExpValidator является ли строка Приемлемой, регулярное выражение обрабатывается как будто оно начинается с утверждения начала строки (^) и заканчивается утверждением конца строки ($); сопоставление выполняется со всей входной строкой или с указанной позиции, если задана начальная позиция, отличная от нуля.

Если строка является префиксом Приемлемой строки, она считается Промежуточной. Например, "" и "A" являются Промежуточными для регулярного выражения [A-Z][0-9] (в то время как "_" будет Недействительным).

Краткое введение в движок регулярных выражений Qt см. в QRegExp.

Пример использования:

// regexp: optional '-' followed by between 1 and 3 digits
QRegExp rx("-?\\d{1,3}");
QValidator *validator = new QRegExpValidator(rx, this);

QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);

Ниже приведены некоторые примеры валидаторов. На практике они обычно связываются с виджетом, как в примере выше.

// integers 1 to 9999
QRegExp rx("[1-9]\\d{0,3}");
// the validator treats the regexp as "^[1-9]\\d{0,3}$"
QRegExpValidator v(rx, 0);
QString s;
int pos = 0;

s = "0";     v.validate(s, pos);    // returns Invalid
s = "12345"; v.validate(s, pos);    // returns Invalid
s = "1";     v.validate(s, pos);    // returns Acceptable

rx.setPattern("\\S+");            // one or more non-whitespace characters
v.setRegExp(rx);
s = "myfile.txt";  v.validate(s, pos); // Returns Acceptable
s = "my file.txt"; v.validate(s, pos); // Returns Invalid

// A, B or C followed by exactly five digits followed by W, X, Y or Z
rx.setPattern("[A-C]\\d{5}[W-Z]");
v.setRegExp(rx);
s = "a12345Z"; v.validate(s, pos);        // Returns Invalid
s = "A12345Z"; v.validate(s, pos);        // Returns Acceptable
s = "B12";     v.validate(s, pos);        // Returns Intermediate

// match most 'readme' files
rx.setPattern("read\\S?me(\.(txt|asc|1st))?");
rx.setCaseSensitive(false);
v.setRegExp(rx);
s = "readme";      v.validate(s, pos); // Returns Acceptable
s = "README.1ST";  v.validate(s, pos); // Returns Acceptable
s = "read me.txt"; v.validate(s, pos); // Returns Invalid
s = "readm";       v.validate(s, pos); // Returns Intermediate

См. также QRegExp, QIntValidator, QDoubleValidator и Пример редактора настроек.

Документация по свойствам

regExp : QRegExp

Это свойство содержит регулярное выражение, используемое для валидации.

По умолчанию это свойство содержит регулярное выражение с шаблоном .* , которое соответствует любой строке.

Функции доступа:

const QRegExp & regExp() const
void setRegExp(const QRegExp &rx)

Документация по членам-функциям

QRegExpValidator::QRegExpValidator(QObject *parent = Q_NULLPTR)

Конструктор валидатора с объектом parent, который принимает любую строку (включая пустую) как корректную.

QRegExpValidator::QRegExpValidator(const QRegExp &rx, QObject *parent = Q_NULLPTR)

Конструктор валидатора с объектом parent, который принимает все строки, соответствующие регулярному выражению rx.

Сопоставление выполняется со всей строкой; например, если regexp — [A-Fa-f0-9]+, он будет обрабатываться как ^[A-Fa-f0-9]+$.

QRegExpValidator::~QRegExpValidator()

Уничтожает валидатор.

[virtual] QValidator::State QRegExpValidator::validate(QString &input, int &pos) const

Переопределена из QValidator::validate().

Возвращает Приемлемо, если input соответствует регулярному выражению для этого валидатора, Промежуточно, если оно частично соответствует (т. е. может соответствовать, если добавить дополнительные корректные символы), и Недействительно, если input не соответствует.

Кроме того, если input не соответствует, параметр pos устанавливается в длину параметра input.

Например, если регулярное выражение — \w\d\d (символ слова, цифра, цифра), то "A57" — Приемлемо, "E5" — Промежуточно, а "+9" — Недействительно.

См. также QRegExp::exactMatch().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qregexpvalidator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API