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