The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::FormValidator::Constraints::Words - Data constraints for word inputs.

SYNOPSIS

  use Data::FormValidator::Constraints::Words;

  my $rv = Data::FormValidator->check(\%input, {
     real_name      => realname(),
     basic_words    => basicwords(),
     simple_words   => simplewords(),
     print_safe     => printsafe(),
     paragraph      => paragraph(),
  },

  # or, use the regular functions
  my $rv = Data::FormValidator->check(\%input, {
     comments => sub {
        my($dfv, $value) = @_;
        return $dfv->match_paragraph($value);
     }
  });

DESCRIPTION

Data::FormValidator::Constraints::Words provides several methods that can be used to generate constraint closures for use with Data::FormValidator for the purpose of validating textual input.

CHARACTER SETS

In the methods below several character code ranges are specified, below is a quick guide to what those ranges represent:

  Dec     Oct     Hex   Description
  ---------------------------------------------------------
   32-47  040-057 20-2F ASCII symbols
   48-57  060-071 30-39 ASCII numerals
   58-64  072-100 3A-40 ASCII symbols
   65-90  101-132 41-5A ASCII uppercase alphabetics
   91-96  133-140 5B-60 ASCII symbols
   97-122 141-172 61-7A ASCII lowercase alphabetics
  123-126 173-176 7B-7E ASCII symbols
  128-159 200-237 80-9F Extended symbols (unsupported in HTML4 standard)
  160-191 240-277 A0-BF Extended symbols
  192-255 300-377 C0-FF Extended alphabetics

The above table is based on the ISO Latin 1 (ISO 8859-1) set of encodings. The character range of 128-159 has no corresponding HTML entity encodings, and are considered control characters in the ISO Latin 1 character set. If you wish to override these settings, subclass this module and set the appropriate values for the following regular expression settings:

  $REALNAME    = q/\-\s\w.,\'\xC0-\xFF/;
  $BASICWORDS  = q/\-\s\w.,\'\"&;:\?\#\xC0-\xFF/;
  $SIMPLEWORDS = q/\-\s\w.,\'\"&;:\?\#~\+=\(\)\[\]\{\}<>\/!\xC0-\xFF/;
  $PRINTSAFE   = q/\s\x20-\x7E\xA0-\xFF/;
  $PARAGRAPH   = q/\s\x20-\x7E\xA0-\xFF/;

Note that these are used within a character class, so characters such as '-' must be escaped.

Although here PRINTSAFE and PARAGRAPH are the same, they may not be when subclassed.

METHODS

realname

The realname methods allows commonly used characters within a person's name to be used. Also restricts the string length to 128 characters. Acceptable characters must match the $REALNAME regular expression.

  • realname

  • valid_realname

  • match_realname

basicwords

The basicwords methods allow a restricted character set to match simple strings, such as reference codes. Acceptable characters must match the $BASICWORDS regular expression:

  • basicwords

  • valid_basicwords

  • match_basicwords

simplewords

The simplewords methods allow commonly used characters within simple text box input, such as for titles. Acceptable characters must match the $SIMPLEWORDS regular expression.

  • simplewords

  • valid_simplewords

  • match_simplewords

printsafe

The printsafe methods restrict characters to those non-control characters within the character set. Acceptable characters must match the $PRINTSAFE regular expression.

  • printsafe

  • valid_printsafe

  • match_printsafe

paragraph

The paragraph methods allows for a larger range of characters that would be expected to appear in a textarea inpout, such as a news story or a review. Acceptable characters must match the $PARAGRAPH regular expression:

  • paragraph

  • valid_paragraph

  • match_paragraph

NOTES

Although Data-FormValidator is not a dependency, it is expected that this module will be used as part of DFV's constraint framework.

This module was originally written as part of the Labyrinth website management tool.

SEE ALSO

Data::FormValidator

AUTHOR

Barbie, <barbie@missbarbell.co.uk> for Miss Barbell Productions, http://www.missbarbell.co.uk/

COPYRIGHT & LICENSE

  Copyright (C) 2002-2013 Barbie for Miss Barbell Productions
  All Rights Reserved.

  This distribution is free software; you can redistribute it and/or
  modify it under the Artistic Licence v2.