| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
HTML::FormFu::Constraint::Regex - Regex Constraint
Regular expression-based constraint.
Arguments: $regex
Arguments: $string
Arguments: \@parts
Used to build a Regexp::Common regex.
The following definition is equivalent to
$RE{URI}{HTTP}{-scheme => 'https?'}
type: Regex
common:
- URI
- HTTP
- { '-scheme': 'https?' }
Is a sub-class of, and inherits methods from HTML::FormFu::Constraint
Carl Franks cfranks@cpan.org
Based on the original source code of HTML::Widget::Constraint::Regex, by
Sebastian Riedel, sri@oook.de.
This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
package HTML::FormFu::Constraint::Regex; use Moose; extends 'HTML::FormFu::Constraint'; use Regexp::Common; has common => ( is => 'rw', traits => ['Chained'] ); has regex => ( is => 'rw', traits => ['Chained'] ); sub constrain_value { my ( $self, $value ) = @_; return 1 if !defined $value || $value eq ''; my $regex; if ( defined $self->regex ) { $regex = $self->regex; } elsif ( defined $self->common ) { my @common = ref $self->common ? @{ $self->common } : $self->common; $regex = shift @common; $regex = $RE{$regex}; for (@common) { $regex = $regex->{ ref $_ ? join( $;, %$_ ) : $_ }; } } else { $regex = qr/.*/; } my $ok = $value =~ $regex; return $self->not ? !$ok : $ok; } __PACKAGE__->meta->make_immutable; 1; __END__