X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-CGI-Ex;a=blobdiff_plain;f=lib%2FCGI%2FEx%2FValidate.pm;h=5bb62e3f362c97540e66bfcaf4c60db2a4d797d6;hp=55709d528f896c67100b18dd3513ee92e37a8ed6;hb=8abbacc82b52f460bef67c1923ae98873a95e123;hpb=83f0c6a9aaf9bc520cef93b958d51a5d85e8999c diff --git a/lib/CGI/Ex/Validate.pm b/lib/CGI/Ex/Validate.pm index 55709d5..5bb62e3 100644 --- a/lib/CGI/Ex/Validate.pm +++ b/lib/CGI/Ex/Validate.pm @@ -7,7 +7,7 @@ CGI::Ex::Validate - another form validator - but it does javascript in parallel =cut ###----------------------------------------------------------------### -# Copyright 2006 - Paul Seamons # +# Copyright 2007 - Paul Seamons # # Distributed under the Perl Artistic License without warranty # ###----------------------------------------------------------------### @@ -22,7 +22,7 @@ use vars qw($VERSION @UNSUPPORTED_BROWSERS ); -$VERSION = '2.06'; +$VERSION = '2.08'; $DEFAULT_EXT = 'val'; $QR_EXTRA = qr/^(\w+_error|as_(array|string|hash)_\w+|no_\w+)/; @@ -303,6 +303,11 @@ sub validate_buddy { $value =~ s/\s+$//; $modified = 1; } + if ($field_val->{'trim_control_chars'}) { + $value =~ y/\t/ /; + $value =~ y/\x00-\x1F//d; + $modified = 1; + } if ($field_val->{'to_upper_case'}) { # uppercase $value = uc($value); $modified = 1; @@ -335,6 +340,7 @@ sub validate_buddy { } }else{ foreach my $value (@$values) { + next if ! defined $value; $value =~ s{(?$opt:$pat)}{ my @match = (undef, $1, $2, $3, $4, $5, $6); # limit on the number of matches my $copy = $swap; @@ -1721,6 +1727,13 @@ not trim. {field => 'foo', do_not_trim => 1} +=item C + +Off by default. If set to true, removes characters in the +\x00 to \x31 range (Tabs are translated to a single space). + + {field => 'foo', trim_control_chars => 1} + =item C Pass a swap pattern to change the actual value of the form.