Класс 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
- 31 открытых функции унаследованы от QObject
Открытые слоты
| void | setRegularExpression(const QRegularExpression &re) |
- 1 открытый слот унаследован от QObject
Сигналы
| void | regularExpressionChanged(const QRegularExpression &re) |
- 1 сигнал унаследован от QValidator
- 2 сигнала унаследованы от QObject
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследованы от QObject
Дополнительные унаследованные члены
- 9 защищенных функций унаследованы от QObject
Подробное описание
Класс QRegularExpressionValidator используется для проверки строки по регулярному выражению.
QRegularExpressionValidator использует регулярное выражение (regexp) для определения того, является ли входная строка Приемлемой, Промежуточной или Недействительной. Регулярное выражение можно задать при создании QRegularExpressionValidator или позже.
Если регулярное выражение частично совпадает со строкой, результат считается Промежуточным. Например, "" и "A" являются Промежуточными для регулярного выражения [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)
Конструктор валидатора с объектом parent, который принимает любую строку (включая пустую) как допустимую.
QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr)
Конструктор валидатора с объектом parent, который принимает все строки, соответствующие регулярному выражению 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/qt-5.12/qregularexpressionvalidator.html