=cut
###----------------------------------------------------------------###
-# Copyright 2006 - Paul Seamons #
+# Copyright 2007 - Paul Seamons #
# Distributed under the Perl Artistic License without warranty #
###----------------------------------------------------------------###
@UNSUPPORTED_BROWSERS
);
-$VERSION = '2.00';
+$VERSION = '2.09';
$DEFAULT_EXT = 'val';
$QR_EXTRA = qr/^(\w+_error|as_(array|string|hash)_\w+|no_\w+)/;
next if $found{$field};
my $field_val = $group_val->{$field};
die "Found a nonhashref value on field $field" if ! UNIVERSAL::isa($field_val, 'HASH');
+ $field_val->{'field'} = $field if ! defined $field_val->{'field'};
push @$fields, $field_val;
}
$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;
}
}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;
"$js_uri_path/CGI/Ex/validate.js";
};
- if (eval { require JSON }) {
+ if (! $self->{'no_jsondump'} && eval { require CGI::Ex::JSONDump }) {
+ my $json = CGI::Ex::JSONDump->new({pretty => 1})->dump($val_hash);
+ return qq{<script src="$js_uri_path_validate"></script>
+<script>
+document.validation = $json;
+if (document.check_form) document.check_form("$form_name");
+</script>
+};
+
+ } elsif (! $self->{'no_json'} && eval { require JSON }) {
my $json = JSON->new(pretty => 1)->objToJson($val_hash);
return qq{<script src="$js_uri_path_validate"></script>
{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.