Spec-Zone.ru › Qt 5.11

Класс QRegularExpressionValidator

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

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

Свойства

  • regularExpression : QRegularExpression
  • 1 свойство унаследовано от QObject

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

QRegularExpressionValidator(QObject *parent = nullptr)
QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
virtual ~QRegularExpressionValidator()
QRegularExpression regularExpression() const

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

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

Открытые слоты

void setRegularExpression(const QRegularExpression &re)
  • 1 открытый слот унаследован от QObject

Сигналы

void regularExpressionChanged(const QRegularExpression &re)
  • 1 сигнал унаследован от QValidator
  • 2 сигнала унаследованы от QObject

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

  • 1 открытая переменная унаследована от QObject
  • 10 статические открытые члены унаследованы от QObject
  • 9 защищенные функции унаследованы от QObject
  • 2 защищенные переменные унаследованы от QObject

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

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

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

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

QRegularExpressionValidator автоматически обрамляет регулярное выражение якорями \\A и \\z; другими словами, он всегда пытается выполнить точное совпадение.

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

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

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

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

// integers 1 to 9999
QRegularExpression re("[1-9]\\d{0,3}");
// the validator treats the regexp as "^[1-9]\\d{0,3}$"
QRegularExpressionValidator v(re, 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

re.setPattern("\\S+");            // one or more non-whitespace characters
v.setRegularExpression(re);
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
re.setPattern("[A-C]\\d{5}[W-Z]");
v.setRegularExpression(re);
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
re.setPattern("read\\S?me(\.(txt|asc|1st))?");
re.setPatternOptions(QRegularExpression::CaseInsensitiveOption);
v.setRegularExpression(re);
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

См. также QRegularExpression, QIntValidator, QDoubleValidator и QRegExpValidator.

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

regularExpression : QRegularExpression

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

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

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

QRegularExpression regularExpression() const
void setRegularExpression(const QRegularExpression &re)

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

void regularExpressionChanged(const QRegularExpression &re)

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

QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)

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

QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)

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

[virtual] QRegularExpressionValidator::~QRegularExpressionValidator()

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

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

Переопределяет QValidator::validate().

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

В случае, если input не соответствует, параметр pos устанавливается в длину параметра input; в противном случае он не изменяется.

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

См. также QRegularExpression::match().

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

Spec-Zone.ru

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