Класс QRegularExpressionValidator
Класс QRegularExpressionValidator используется для проверки строки на соответствие регулярному выражению. Подробнее...
| Заголовок: | #include <QRegularExpressionValidator> |
| qmake: | QT += gui |
| С момента: | Qt 5.1 |
| Наследует: | QValidator |
Этот класс был представлен в Qt 5.1.
Свойства
- regularExpression : QRegularExpression
Открытые функции
| QRegularExpressionValidator(const QRegularExpression &re, QObject *parent = nullptr) | |
| QRegularExpressionValidator(QObject *parent = nullptr) | |
| virtual | ~QRegularExpressionValidator() |
| QRegularExpression | regularExpression() const |
Переопределенные открытые функции
| virtual QValidator::State | validate(QString &input, int &pos) const override |
Открытые слоты
| void | setRegularExpression(const QRegularExpression &re) |
Сигналы
| void | regularExpressionChanged(const QRegularExpression &re) |
Подробное описание
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(const QRegularExpression &re, QObject *parent = nullptr)
Конструктор валидатора с объектом-родителем parent, который принимает все строки, соответствующие регулярному выражению re.
QRegularExpressionValidator::QRegularExpressionValidator(QObject *parent = nullptr)
Конструктор валидатора с объектом-родителем parent, который принимает любую строку (включая пустую) как действительную.
[virtual] QRegularExpressionValidator::~QRegularExpressionValidator()
Уничтожает валидатор.
[override virtual] QValidator::State QRegularExpressionValidator::validate(QString &input, int &pos) const
Переопределяет: QValidator::validate(QString &input, int &pos) const.
Возвращает Приемлемо, если 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.15/qregularexpressionvalidator.html