Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QRegExpValidator Class Reference

The QRegExpValidator class is used to check a string against a regular expression. More...

    #include <QRegExpValidator>

Inherits QValidator.

- List of all members, including inherited members
- Obsolete members

### Writable Properties

- 1 writable property inherited from QObject

### Public Functions

- QRegExpValidator ( QObject * parent )
- QRegExpValidator ( const QRegExp & rx, QObject * parent )
- ~QRegExpValidator ()
- const QRegExp & regExp () const
- void setRegExp ( const QRegExp & rx )
- virtual QValidator::State validate ( QString & input, int & pos ) const

- 2 public functions inherited from QValidator
- 24 public functions inherited from QObject

### Public Slots

- 1 public slot inherited from QObject

### Signals

- 1 signal inherited from QObject

### Static Public Members

- 4 static public members inherited from QObject

### Protected Functions

- 9 protected functions inherited from QObject

## Detailed Description

The QRegExpValidator class is used to check a string against a regular expression.

QRegExpValidator uses a regular expression (regexp) to determine whether an input string is `Acceptable`, `Intermediate`, or `Invalid`. The regexp can either be supplied when the QRegExpValidator is constructed, or at a later time.

The regexp is treated as if it begins with the start of string assertion, ^, and ends with the end of string assertion $ so the match is against the entire input string, or from the given position if a start position greater than zero is given.

For a brief introduction to Qt's regexp engine see QRegExp.

Example of use:

        // 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);

Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.

        // 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

See also QRegExp, QIntValidator, and QDoubleValidator.

## Member Function Documentation

### QRegExpValidator::QRegExpValidator ( QObject * parent )

Constructs a validator with a parent object that accepts any string (including an empty one) as valid.

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

Constructs a validator with a parent object that accepts all strings that match the regular expression rx.

The match is made against the entire string; e.g. if the regexp is [A-Fa-f0-9]+ it will be treated as ^[A-Fa-f0-9]+$.

### QRegExpValidator::~QRegExpValidator ()

Destroys the validator.

### const QRegExp & QRegExpValidator::regExp () const

Returns the regular expression used for validation.

See also setRegExp().

### void QRegExpValidator::setRegExp ( const QRegExp & rx )

Sets the regular expression used for validation to rx.

See also regExp().

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

Returns `Acceptable` if input is matched by the regular expression for this validator, `Intermediate` if it has matched partially (i.e. could be a valid match if additional valid characters are added), and `Invalid` if input is not matched.

The pos parameter is set to the length of the input parameter.

For example, if the regular expression is \w\d\d (word-character, digit, digit) then "A57" is `Acceptable`, "E5" is `Intermediate`, and "+9" is `Invalid`.

Reimplemented from QValidator.

See also QRegExp::exactMatch().