A validator that accepts dates. More...
#include <DateValidator.h>
Inherits Wt::WRegExpValidator.
Public Member Functions | |
DateValidator (const boost::gregorian::date &bottom, const boost::gregorian::date &top) | |
Construct a date validator. | |
virtual State | validate (WString &input) const |
Private Attributes | |
boost::gregorian::date | bottom_ |
boost::gregorian::date | top_ |
A validator that accepts dates.
This example validator only accepts input in the dd/mm/yyyy format, and checks that the date is in the right range.
It would be a natural thing to extend this class to provide access to the parsed date as a boost::gregorian::date object for example.
This class is part of the Wt form example.
Definition at line 33 of file DateValidator.h.
DateValidator::DateValidator | ( | const boost::gregorian::date & | bottom, | |
const boost::gregorian::date & | top | |||
) |
Construct a date validator.
The validator will accept only dates in the indicated range.
WValidator::State DateValidator::validate | ( | WString & | input | ) | const [virtual] |
Reimplemented from Wt::WRegExpValidator.
Definition at line 26 of file DateValidator.C.
{ WValidator::State state = WRegExpValidator::validate(input); std::string text = input.toUTF8(); if ((state == Valid) && !text.empty()) { boost::smatch what; boost::regex_match(text, what, boost::regex(regExp().toUTF8())); try { date d = from_string(what[3] + "/" + what[2] + "/" + what[1]); if ((d >= bottom_) && (d <= top_)) return Valid; else return Invalid; } catch (std::exception& e) { return Invalid; } } else return state; }
boost::gregorian::date DateValidator::bottom_ [private] |
Definition at line 50 of file DateValidator.h.
boost::gregorian::date DateValidator::top_ [private] |
Definition at line 50 of file DateValidator.h.