]> Dogcows Code - chaz/p5-CGI-Ex/blobdiff - lib/CGI/Ex/Validate.pm
CGI::Ex 2.08
[chaz/p5-CGI-Ex] / lib / CGI / Ex / Validate.pm
index 16591d51aee1145fcf940560da993db6a41a310d..5bb62e3f362c97540e66bfcaf4c60db2a4d797d6 100644 (file)
@@ -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.04';
+$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<trim_control_chars>
+
+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<replace>
 
 Pass a swap pattern to change the actual value of the form.
This page took 0.021004 seconds and 4 git commands to generate.