The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

FormValidator::Simple::Struct::Regex - Plugin for FormValidator::Simple::Struct

VERSION

This document describes FormValidator::Simple::Struct::Regex version 0.11.

SYNOPSIS

use FormValidator::Simple::Struct;
$class = FormValidator::Simple::Struct->new;
$class->load_plugin('FormValidator::Simple::Struct::Regex');

DESCRIPTION

This module provides some validate methods based on regex

use Test::More;
ok $class->NOT_BLANK('value');
ng $class->NOT_BLANK('');

INTERFACE

Functions

INT

# allow integer ; 10 , 0 , -10
ok $v->check(
   {key =>  "1" },
   {key => "INT"});

STRING

# allow all Strings
ok $v->check(
   ["111" , "abcde"],
   ["STRING"]);

ASCII

# allow Arabic number and alphabet and ascii symbols
ok $v->check(
   ["111" , 'abcde!"#$%%()'],
   ["ASCII"]);

# not allow multi bytes characters
ng $v->check(
   ["あ" , "漢字"],
   ["ASCII"]);

DECIMAL

# allow integer and decimals ; 10 1,0 , 0 , -10 , -1.0
ok $v->check(
   ["111" , "11.1" , "-11" , '0' , '-1.15'],
   ["DECIMAL"]);

URL

# allow ^http|^https
ok $v->check(
   ["http://google.com" , 'https://www.google.com/'],
   ["URL"]);

ng $v->check(
   ["git://google.com" , 'smb://www.google.com/'],
   ["URL"]);

EMAIL

this is base on Email::Valid;

DATETIME

# The following examples are followed. 
ok $v->check([
    '%Y-%m-%d %H:%M:%S',
    '%Y/%m/%d %H:%M:%S',
    '%Y-%m-%d %H-%M-%S',
    '%Y/%m/%d %H-%M-%S',],
['DATETIME']);

DATE

# The following examples are followed. 
ok $v->check([
   '%Y-%m-%d',
   '%Y/%m/%d'],
['DATE']);

TIME

# The following examples are followed. 
ok $v->check([
   '%H-%M-%S',
   '%H-%M-%S'],
['TIME']);

LENGTH

# check value length
$rule = ["ASCII","NOT_BLANK" , ['LENGTH' , 1 , 8]];
ok $v->check(['a'] , $rule);
ng $v->check(['abcdefghi'] , $rule);

$rule = ["ASCII","NOT_BLANK" , ['LENGTH' , 4]];
ng $v->check(['abc'] , $rule) # false 
ok $v->check(['abcd'] , $rule) # true
ng $v->check(['abcde'] , $rule) # false 

BETWEEN

# check value 
$rule = ["INT",['BETWEEN' , 1 , 8]];
ok $v->check([1] , $rule) # true
ng $v->check([3.1] , $rule) # false not INT
ok $v->check([5] , $rule) # true
ng $v->check([7.9] , $rule) # false not INT 
ok $v->check([8] , $rule) # true
ng $v->check([9] , $rule) # false, input is over 8
ng $v->check([0] , $rule) # false, input is under 1

DEPENDENCIES

Perl 5.8.1 or later.

BUGS

All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.

SEE ALSO

perl

AUTHOR

S2 <s2otsa59@gmail.com>

LICENSE AND COPYRIGHT

Copyright (c) 2012, S2. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 189:

Non-ASCII character seen before =encoding in '["あ"'. Assuming UTF-8