Spec-Zone.ru › Qt 5.15

Класс QRegExpValidator

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

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

Свойства

  • regExp : QRegExp

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

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

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

virtual QValidator::State validate(QString &input, int &pos) const override

Сигналы

void regExpChanged(const QRegExp &regExp)

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

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)

Сигнал уведомления:

void regExpChanged(const QRegExp &regExp)

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

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

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

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

QRegExpValidator::QRegExpValidator(QObject *parent = nullptr)

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

[virtual] QRegExpValidator::~QRegExpValidator()

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

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

Реализует: QValidator::validate(QString &input, int &pos) const.

Возвращает Приемлемый, если 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/qt-5.15/qregexpvalidator.html

Spec-Zone.ru

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