Data::FormValidator::FUserrContributed Perl DocData::FormValidator::Filters(3)NAMEData::FormValidator::Filters - Basic set of filters available in an
Data::FormValidator profile.
SYNOPSIS
use Data::FormValidator;
%profile = (
filters => 'trim',
...
);
my $results = Data::FormValidator->check( \%data, \%profile );
DESCRIPTION
These are the builtin filters which may be specified as a name in the
filters, field_filters, and field_filter_regexp_map parameters of the
input profile.
Filters are applied as the first step of validation, possibly modifying
a copy of the validation before any constraints are checked.
RECOMMENDED USE
As a long time maintainer and user of Data::FormValidator, I recommend
that filters be used with caution. They are immediately modifying the
input provided, so the original data is lost. The few I recommend
include "trim", which removes leading and trailing whitespace. I have
this turned on by default by using
CGI::Application::Plugin::ValidateRM. It's also generally safe to use
the "lc" and "uc" filters if you need that kind of data transformation.
Beyond simple filters, I recommend transforming the "valid" hash
returned from validation if further changes are needed.
PROCEDURAL INTERFACE
You may also call these functions directly through the procedural
interface by either importing them directly or importing the whole
:filters group. For example, if you want to access the trim function
directly, you could either do:
use Data::FormValidator::Filters (qw/filter_trim/);
# or
use Data::FormValidator::Filters (qw/:filters/);
$string = filter_trim($string);
Notice that when you call filters directly, you'll need to prefix the
filter name with "filter_".
THE FILTERS
FV_split
use Data::FormValidator::Filtersqw(FV_split);
# Validate every e-mail in a comma separated list
field_filters => {
several_emails => FV_split(qr/\s*,\s*/),
# Any pattern that can be used by the 'split' builtin works.
tab_sep_field => FV_split('\t'),
},
constraint_methods => {
several_emails => email(),
},
With this filter, you can split a field into multiple values. The
constraint for the field will then be applied to every value.
This filter has a different naming convention because it is a higher-
order function. Rather than returning a value directly, it returns a
code reference to a standard Data::FormValidator filter.
After successfully being validated the values will appear as an
arrayref.
FV_replace
use Data::FormValidator::Filtersqw(FV_replace);
field_filters => {
first_name => FV_replace(qr/Mark/,'Don'),
},
FV_replace is a shorthand for writing simple find-and-replace filters.
The above filter would be translated to this:
sub { my $v = shift; $v =~ s/Mark/Don/; $v }
For more complex filters, just write your own.
trim
Remove white space at the front and end of the fields.
strip
Runs of white space are replaced by a single space.
digit
Remove non digits characters from the input.
alphanum
Remove non alphanumeric characters from the input.
integer
Extract from its input a valid integer number.
pos_integer
Extract from its input a valid positive integer number.
Bugs: This filter won't extract "9" from "a9+", it will instead extract
"9+"
neg_integer
Extract from its input a valid negative integer number.
Bugs: This filter will currently filter the case of "a9-" to become
"9-", which it should leave it alone.
decimal
Extract from its input a valid decimal number.
Bugs: Given "1,000.23", it will currently return "1.000.23"
pos_decimal
Extract from its input a valid positive decimal number.
Bugs: Given "1,000.23", it will currently return "1.000.23"
neg_decimal
Extract from its input a valid negative decimal number.
Bugs: Given "1,000.23", it will currently return "1.000.23"
dollars
Extract from its input a valid number to express dollars like currency.
Bugs: This filter won't currently remove trailing numbers like "1.234".
phone
Filters out characters which aren't valid for an phone number. (Only
accept digits [0-9], space, comma, minus, parenthesis, period and pound
[#].)
sql_wildcard
Transforms shell glob wildcard (*) to the SQL like wildcard (%).
quotemeta
Calls the quotemeta (quote non alphanumeric character) builtin on its
input.
lc
Calls the lc (convert to lowercase) builtin on its input.
uc
Calls the uc (convert to uppercase) builtin on its input.
ucfirst
Calls the ucfirst (Uppercase first letter) builtin on its input.
SEE ALSO
o
L<Data::FormValidator>
o
L<Data::FormValidator::Constraints>
o
L<Data::FormValidator::Filters::Image> - shrink incoming image uploads
AUTHOR
Author: Francis J. Lacoste <francis.lacoste@iNsu.COM>
Maintainer: Mark Stosberg <mark@summersault.com>
COPYRIGHT
Copyright (c) 1999,2000 iNsu Innovations Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it
under the terms as perl itself.
perl v5.14.2 2011-11-20 Data::FormValidator::Filters(3)