Wt: Wt::WRegExpValidator Class Reference

Wt 3.3.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Hierarchy
- Class Members

Public Member Functions
Wt::WRegExpValidator Class Reference

A validator that checks user input against a regular expression. More...

`#include <Wt/WRegExpValidator>`

Inheritance diagram for Wt::WRegExpValidator:
[legend]

List of all members.

## Public Member Functions
| WRegExpValidator (WObject *parent=0)
| Sets a new regular expression validator.
| WRegExpValidator (const WString &pattern, WObject *parent=0)
| Sets a new regular expression validator that accepts input that matches the given regular expression.
| ~WRegExpValidator ()
| Destructor.
void | setRegExp (const WString &pattern)
| Sets the regular expression for valid input.
WString | regExp () const
| Returns the regular expression for valid input.
void | setFlags (WFlags< RegExpFlag > flags)
| Sets regular expression matching flags.
WFlags< RegExpFlag > | flags () const
| Returns regular expression matching flags.
virtual Result | validate (const WString &input) const
| Validates the given input.
virtual void | createExtConfig (std::ostream &config) const
| Provides Ext-compatible config options for client-side validation.
void | setNoMatchText (const WString &text)
void | setInvalidNoMatchText (const WString &text)
| Sets the message to display when the input does not match.
WString | invalidNoMatchText () const
| Returns the message displayed when the input does not match.
virtual std::string | javaScriptValidate () const
| Creates a Javascript object that validates the input.

## Detailed Description

A validator that checks user input against a regular expression.

This validator checks whether user input matches the given (perl-like) regular expression. It checks the complete input; prefix ^ and suffix $ are not needed.

The following perl features are not supported (since client-side validation cannot handle them):

- No Lookbehind support, i.e. the constructs (?<=text) and (?<!text).
- No atomic grouping, i.e. the construct (?>group).
- No conditional expressions, i.e. the consturct (?ifthen|else).

Usage example:

     Wt::WLineEdit *lineEdit = new Wt::WLineEdit(this);
     // an email address validator
     Wt::WRegExpValidator *validator = new Wt::WRegExpValidator("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}");
     lineEdit->setValidator(validator);
     lineEdit->setText("koen@emweb.be");

Note:
  This validator does not fully support unicode: it matches on the UTF8-encoded representation of the string.

### i18n

The strings used in this class can be translated by overriding the default values for the following localization keys:

- Wt.WRegExpValidator.Invalid: Invalid input

## Constructor & Destructor Documentation

Wt::WRegExpValidator::WRegExpValidator | ( | const WString & | pattern,
|  | WObject * | parent = `0`
| ) |  |

Sets a new regular expression validator that accepts input that matches the given regular expression.

This constructs a validator that matches the perl regular expression `expr`.

## Member Function Documentation

WString Wt::WRegExpValidator::invalidNoMatchText | ( |  | ) | const

Returns the message displayed when the input does not match.

See also:
  setInvalidNoMatchText(const WString&)

std::string Wt::WRegExpValidator::javaScriptValidate | ( |  | ) | const`[virtual]`

Creates a Javascript object that validates the input.

The JavaScript expression should evaluate to an object which contains a `validate(text)` function, which returns an object that contains the following two fields:

- fields: a boolean valid,
- a `message` that indicates the problem if not valid.

Returns an empty string if the validator does not provide a client-side validation implementationq.

Note:
  The signature and contract changed changed in Wt 3.1.9.

See also:
  inputFilter()

Reimplemented from Wt::WValidator.

WString Wt::WRegExpValidator::regExp | ( |  | ) | const

Returns the regular expression for valid input.

Returns the perl regular expression.

void Wt::WRegExpValidator::setInvalidNoMatchText | ( | const WString & | text | ) |

Sets the message to display when the input does not match.

The default value is "Invalid input".

void Wt::WRegExpValidator::setNoMatchText | ( | const WString & | text | ) |

Sets the text to be shown if no match can be found.

void Wt::WRegExpValidator::setRegExp | ( | const WString & | pattern | ) |

Sets the regular expression for valid input.

Sets the perl regular expression `expr`.

WValidator::Result Wt::WRegExpValidator::validate | ( | const WString & | input | ) | const`[virtual]`

Validates the given input.

The input is considered valid only when it is blank for a non-mandatory field, or matches the regular expression.

Reimplemented from Wt::WValidator.

All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator