Wt  4.11.1
Public Member Functions | List of all members
Wt::WRegExpValidator Class Reference

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

#include <Wt/WRegExpValidator.h>

Inheritance diagram for Wt::WRegExpValidator:
[legend]

Public Member Functions

 WRegExpValidator ()
 Sets a new regular expression validator.
 
 WRegExpValidator (const WString &pattern)
 Sets a new regular expression validator that accepts input that matches the given regular expression. More...
 
 ~WRegExpValidator ()
 Destructor.
 
void setRegExp (const WString &pattern)
 Sets the regular expression for valid input. More...
 
WString regExpPattern () const
 Returns the regular expression for valid input. More...
 
std::regex regExp () const
 Returns the regular expression for valid input.
 
void setFlags (WFlags< RegExpFlag > flags)
 Sets regular expression matching flags.
 
WFlags< RegExpFlagflags () const
 Returns regular expression matching flags.
 
virtual Result validate (const WString &input) const override
 Validates the given input. More...
 
void setInvalidNoMatchText (const WString &text)
 Sets the message to display when the input does not match. More...
 
WString invalidNoMatchText () const
 Returns the message displayed when the input does not match. More...
 
virtual std::string javaScriptValidate () const override
 Creates a Javascript object that validates the input. More...
 
- Public Member Functions inherited from Wt::WValidator
 WValidator (bool mandatory=false)
 Creates a new validator. More...
 
virtual ~WValidator ()
 Destructor. More...
 
void setMandatory (bool how)
 Sets if input is mandatory. More...
 
bool isMandatory () const
 Returns if input is mandatory.
 
void setInvalidBlankText (const WString &text)
 Sets the message to display when a mandatory field is left blank. More...
 
WString invalidBlankText () const
 Returns the message displayed when a mandatory field is left blank. More...
 
virtual WString format () const
 Returns the validator format. More...
 
virtual std::string inputFilter () const
 Returns a regular expression that filters input. More...
 

Additional Inherited Members

- Public Types inherited from Wt::WValidator
typedef ValidationState State
 Typedef for enum Wt::ValidationState.
 

Detailed Description

A validator that checks user input against a regular expression.

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

The regex should be specified using ECMAScript syntax (http://en.cppreference.com/w/cpp/regex/ecmascript)

Usage example:

Wt::WLineEdit *lineEdit = addWidget(std::make_unique<Wt::WLineEdit>());
// an email address validator
auto validator = std::make_unique<Wt::WRegExpValidator>("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}");
lineEdit->setValidator(validator);
lineEdit->setText("koen@emweb.be");
void setValidator(const std::shared_ptr< WValidator > &validator)
Sets a validator for this field.
Definition: WFormWidget.C:324
A widget that provides a single line edit.
Definition: WLineEdit.h:76
virtual void setText(const WString &text)
Sets the content of the line edit.
Definition: WLineEdit.C:55
Note
This validator does not fully support unicode: it matches on the CharEncoding::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:

Constructor & Destructor Documentation

◆ WRegExpValidator()

Wt::WRegExpValidator::WRegExpValidator ( const WString pattern)

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

This constructs a validator that matches the regular expression expr.

Member Function Documentation

◆ invalidNoMatchText()

WString Wt::WRegExpValidator::invalidNoMatchText ( ) const

Returns the message displayed when the input does not match.

See also
setInvalidNoMatchText(const WString&)

◆ javaScriptValidate()

std::string Wt::WRegExpValidator::javaScriptValidate ( ) const
overridevirtual

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.

See also
inputFilter()

Reimplemented from Wt::WValidator.

Reimplemented in Wt::WTimeValidator.

◆ regExpPattern()

WString Wt::WRegExpValidator::regExpPattern ( ) const

Returns the regular expression for valid input.

Returns the ECMAScript regular expression.

◆ setInvalidNoMatchText()

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

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

The default value is "Invalid input".

◆ setRegExp()

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

Sets the regular expression for valid input.

Sets the ECMAscript regular expression expr.

◆ validate()

WValidator::Result Wt::WRegExpValidator::validate ( const WString input) const
overridevirtual

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.

Reimplemented in Wt::WTimeValidator.