Modified: perl/embperl/trunk/Embperl/Form/Validate.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate.pm Sun Oct 1 13:06:43 2023 @@ -258,16 +258,14 @@ sub newtype sub validate_rules { - my ($self, $frules, $fdat, $pref, $result) = @_ ; + my ($self, $frules, $fdat, $pref, $result, $key, $name) = @_ ; my %param ; my $type ; my $typeobj ; my $i ; my $keys = [] ; - my $key ; my $status ; - my $name ; my $msg ; my $break = 0 ; my @key_stack ; @@ -277,7 +275,7 @@ sub validate_rules my $action = $frules -> [$i++] ; if (ref $action eq 'ARRAY') { - my $fail = $self -> validate_rules ($action, $fdat, $pref, $result) ; + my $fail = $self -> validate_rules ($action, $fdat, $pref, $result, $key, $name) ; return $fail if ($fail) ; } elsif (ref $action eq 'CODE') @@ -294,7 +292,7 @@ sub validate_rules if ($1 eq 'key') { $key = $frules->[$i++] ; - $keys = ref $key?$key:[$key] ; + $keys = ref $key?$key:[$key] ; $type = 'Default' ; $typeobj = $self -> newtype ($type) ; $name = undef ; @@ -302,17 +300,26 @@ sub validate_rules } elsif ($1 eq 'key_check') { - push @key_stack, $key ; + push @key_stack, $key ; $key = $frules->[$i++] ; - $keys = ref $key?$key:[$key] ; + $keys = ref $key?$key:[$key] ; $type = 'Default' ; $typeobj = $self -> newtype ($type) ; - $break = 1 ; + $break = 1 ; } elsif ($1 eq 'key_end') { - $key = pop @key_stack ; - $break = 0 ; + $key = pop @key_stack ; + $keys = ref $key?$key:[$key] ; + $break = 0 ; + } + elsif ($1 eq 'frontend_only') + { + last ; + } + elsif ($1 eq 'backend_only') + { + ; } elsif ($1 eq 'name') { @@ -330,11 +337,11 @@ sub validate_rules { $type = $frules->[$i++] ; $typeobj = $self -> newtype ($type) ; - foreach my $k (@$keys) - { - $status = $typeobj -> validate ($k, $fdat -> {$k}, $fdat, $pref) ; - last if (!$status) ; - } + foreach my $k (@$keys) + { + $status = $typeobj -> validate ($k, $fdat -> {$k}, $fdat, $pref) ; + last if (!$status) ; + } } else { @@ -346,7 +353,7 @@ sub validate_rules my $arg = $frules -> [$i++] ; foreach my $k (@$keys) { - my $method = 'validate_' . $action ; + my $method = 'validate_' . $action ; $status = $typeobj -> $method ($k, $fdat -> {$k}, $arg, $fdat, $pref) ; last if (!$status) ; } @@ -390,8 +397,22 @@ sub build_message my $default_language = $pref -> {default_language} || $self -> {default_language} ; my $charset = $pref -> {charset} ; my $txt ; - - $name ||= $epreq?$epreq -> gettext($key):$key ; + if ($name eq '') + { + if (!ref $key) + { + $name = $epreq?$epreq -> gettext('attr:' . $key):$key ; + } + else + { + my @name ; + foreach my $k (@$key) + { + push @name, $epreq?$epreq -> gettext('attr:' . $k):$k ; + } + $name = join (($language =~ /^de/)?' oder ':' or ', @name) ; + } + } if (ref $name eq 'ARRAY') { my @names ; @@ -409,6 +430,7 @@ sub build_message if ($msg) { $txt = ref $msg ? ($msg -> {"$language.$charset"} || $msg -> {"$default_language.$charset"} || $msg -> {$language} || $msg -> {$default_language} || (each %$msg)[1] || undef):$msg ; + $txt = $epreq -> gettext ($msg) if ($epreq && ($msg =~ /^\w\w\w:/)) ; } else { @@ -506,16 +528,14 @@ sub validate_messages sub gather_script_code { - my ($self, $frules, $pref, $epreq) = @_ ; + my ($self, $frules, $pref, $epreq, $key, $name) = @_ ; my %param ; my $type ; my $typeobj ; my $i ; my $keys = [] ; - my $key ; my $status ; - my $name ; my $msg ; my $msgparam ; my $language = $pref -> {language} ; @@ -533,7 +553,7 @@ sub gather_script_code my $action = $frules -> [$i++] ; if (ref $action eq 'ARRAY') { - $script .= $self -> gather_script_code ($action, $pref, $epreq) ; + $script .= $self -> gather_script_code ($action, $pref, $epreq, $key, $name) ; } elsif (ref $action eq 'CODE') { @@ -544,7 +564,7 @@ sub gather_script_code if ($1 eq 'key') { $key = $frules->[$i++] ; - $keys = ref $key?$key:[$key] ; + $keys = ref $key?$key:[$key] ; $type = 'Default' ; $typeobj = $self -> newtype ($type) ; $name = undef ; @@ -552,17 +572,25 @@ sub gather_script_code } elsif ($1 eq 'key_check') { - push @key_stack, $key ; + push @key_stack, $key ; $key = $frules->[$i++] ; - $keys = ref $key?$key:[$key] ; + $keys = ref $key?$key:[$key] ; $type = 'Default' ; $typeobj = $self -> newtype ($type) ; - $break = 1 ; + $break = 1 ; } elsif ($1 eq 'key_end') { - $key = pop @key_stack ; - $break = 0 ; + $key = pop @key_stack ; + $break = 0 ; + } + elsif ($1 eq 'frontend_only') + { + ; + } + elsif ($1 eq 'backend_only') + { + last ; } elsif ($1 eq 'name') { @@ -590,7 +618,7 @@ sub gather_script_code } else { - $method = 'getscript_' . $action ; + $method = 'getscript_' . $action ; $arg = $frules -> [$i++] ; } @@ -932,6 +960,26 @@ errors only break current block, but doe The above example will only require the field "input", when the field "action" is not empty and is not zero. +=item -key_check, -key_end + +Is used for preconditions, same example as for -break + + [ + -key => 'input', + -key_check => 'action', emptyok => 1, ne => 0, -key_end, + 'required' => 1 + ] + +The above example will only require the field "input", when the field "action" is +not empty and is not zero. + +=item backend_only + +The following rules will only executed in the backend + +=item frontend_only + +The following rules will only executed in the fronend =item [arrayref]
Modified: perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/DateTime.pm Sun Oct 1 13:06:43 2023 @@ -17,12 +17,13 @@ package Embperl::Form::Validate::DateTime ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( de => { - validate_datetime_eu => 'Feld %0: "%1" ist kein g𬴩ges Zeitformat. Geben Sie die Zeit in der Form tt.mm.jjjj hh:mm:ss ein. Die Angabe der Zeit nach dem Datum ist optional.', + validate_datetime_eu => 'Feld %0: "%1" ist kein gültiges Zeitformat. Geben Sie die Zeit in der Form tt.mm.jjjj hh:mm:ss ein. Die Angabe der Zeit nach dem Datum ist optional.', }, 'de.utf-8' => @@ -56,12 +57,12 @@ sub validate if($value =~ /^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(.)$/) { - if ($4 < 1 || $4 > 31 || - $5 < 1 || $5 > 12 || - $6 < 1900 || $6 > 2100 || - $3 < 0 || $3 > 23 || - $4 < 0 || $4 > 59 || - $5 < 0 || $5 > 59) + if ($3 < 1 || $3 > 31 || + $2 < 1 || $2 > 12 || + $1 < 1900 || $1 > 2100 || + $4 < 0 || $4 > 23 || + $5 < 0 || $5 > 59 || + $6 < 0 || $6 > 59) { return ['validate_datetime_eu', $value] ; } Modified: perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/DateTimeEU.pm Sun Oct 1 13:06:43 2023 @@ -1,44 +1,45 @@ - -################################################################################### -# -# Embperl - Copyright (c) 1997-2008 Gerald Richter / ecos gmbh www.ecos.de -# Embperl - Copyright (c) 2008-2014 Gerald Richter -# -# You may distribute under the terms of either the GNU General Public -# License or the Artistic License, as specified in the Perl README file. -# -# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -# -################################################################################### - - -package Embperl::Form::Validate::DateTimeEU ; - -use base qw(Embperl::Form::Validate::DateTime); - - -# -------------------------------------------------------------- - -sub validate - { - my ($self, $key, $value, $fdat, $pref) = @_ ; - - if($value =~ /^(\d{1:2})\.(\d{1:2})\.(\d{1:4})\s+(\d{1:2})\.(\d{1:2})\.(\d{1:4})$/) - { - if ($1 < 1 || $1 > 31 || - $2 < 1 || $2 > 12 || - $3 < 1900 || $3 > 2100 || - $4 < 0 || $4 > 23 || - $5 < 0 || $5 > 59 || - $6 < 0 || $6 > 59) - { - return ['validate_datetime_eu', $value] ; - } - return undef ; - } - - - -1; + +################################################################################### +# +# Embperl - Copyright (c) 1997-2008 Gerald Richter / ecos gmbh www.ecos.de +# Embperl - Copyright (c) 2008-2014 Gerald Richter +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the Perl README file. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +################################################################################### + + +package Embperl::Form::Validate::DateTimeEU ; + +use base qw(Embperl::Form::Validate::DateTime); +use utf8 ; + + +# -------------------------------------------------------------- + +sub validate + { + my ($self, $key, $value, $fdat, $pref) = @_ ; + + if($value =~ /^(\d{1:2})\.(\d{1:2})\.(\d{1:4})\s+(\d{1:2})\.(\d{1:2})\.(\d{1:4})$/) + { + if ($1 < 1 || $1 > 31 || + $2 < 1 || $2 > 12 || + $3 < 1900 || $3 > 2100 || + $4 < 0 || $4 > 23 || + $5 < 0 || $5 > 59 || + $6 < 0 || $6 > 59) + { + return ['validate_datetime_eu', $value] ; + } + return undef ; + } + + + +1; Modified: perl/embperl/trunk/Embperl/Form/Validate/Default.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Default.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/Default.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/Default.pm Sun Oct 1 13:06:43 2023 @@ -18,6 +18,7 @@ package Embperl::Form::Validate::Default use strict; use vars qw($VERSION %error_messages %script_functions %prefixes); +use utf8 ; $VERSION = '2.0.0' ; Modified: perl/embperl/trunk/Embperl/Form/Validate/Duration.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Duration.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/Duration.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/Duration.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::Duration ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( Modified: perl/embperl/trunk/Embperl/Form/Validate/EMail.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/EMail.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/EMail.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/EMail.pm Sun Oct 1 13:06:43 2023 @@ -17,12 +17,13 @@ package Embperl::Form::Validate::EMail ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( de => { - validate_email => 'Die eingegebene E-Mail-Adresse "%0" in Feld "%1" ist ungültig, sie muß genau ein "@" enthalten und darf keine Leerzeichen, Klammern oder Umlaute enthalten.', + validate_email => 'Die eingegebene E-Mail-Adresse "%0" in Feld "%1" ist ung�ltig, sie mu� genau ein "@" enthalten und darf keine Leerzeichen, Klammern oder Umlaute enthalten.', validate_email_nomailto => 'Die eingegebene E-Mail-Adresse "%0" in Feld "%1" scheint mit einem "mailto:" zu beginnen. Bitte geben Sie nur eine E-Mail-Adresse ein und keine mit "mailto:" beginnende URL.', }, @@ -58,7 +59,7 @@ sub validate my ($self, $key, $value, $fdat, $pref) = @_ ; # The valid address "user@tld" or local addresses are not valid in this more general ruleset - if ($value !~ /^[^ <>()@¡-ÿ]+@[^ <>()@¡-ÿ]+\.[a-zA-Z]{2,4}$/ or + if ($value !~ /^[^ <>()@�-�]+@[^ <>()@�-�]+\.[a-zA-Z]{2,4}$/ or $value =~ /@(\.|.*(\.\.|@))/) { return ['validate_email', $value, $key] ; Modified: perl/embperl/trunk/Embperl/Form/Validate/EMailRFC.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/EMailRFC.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/EMailRFC.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/EMailRFC.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::EMailRFC ; use base qw(Embperl::Form::Validate::EMail); +use utf8 ; # -------------------------------------------------------------- Modified: perl/embperl/trunk/Embperl/Form/Validate/FQDN.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/FQDN.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/FQDN.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/FQDN.pm Sun Oct 1 13:06:43 2023 @@ -16,12 +16,13 @@ package Embperl::Form::Validate::FQDN ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( de => { - validate_fqdn => 'Feld %0: "%1" ist keine gültiger Hostname.', + validate_fqdn => 'Feld %0: "%1" ist keine g�ltiger Hostname.', }, en => { Modified: perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPAddr.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPAddr.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPAddr.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPAddr.pm Sun Oct 1 13:06:43 2023 @@ -17,12 +17,13 @@ package Embperl::Form::Validate::FQDN_IPAddr ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( de => { - validate_fqdn_ipaddr => 'Feld %0: "%1" ist keine gültiger Hostname oder IP-Adresse.', + validate_fqdn_ipaddr => 'Feld %0: "%1" ist keine g�ltiger Hostname oder IP-Adresse.', }, 'de.utf-8' => Added: perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPv4_IPv6Addr.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPv4_IPv6Addr.pm?rev=1912655&view=auto ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPv4_IPv6Addr.pm (added) +++ perl/embperl/trunk/Embperl/Form/Validate/FQDN_IPv4_IPv6Addr.pm Sun Oct 1 13:06:43 2023 @@ -0,0 +1,123 @@ + +################################################################################### +# +# Embperl - Copyright (c) 1997-2008 Gerald Richter / ecos gmbh www.ecos.de +# Embperl - Copyright (c) 2008-2014 Gerald Richter +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the Perl README file. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +################################################################################### + + +package Embperl::Form::Validate::FQDN_IPv4_IPv6Addr ; + +use base qw(Embperl::Form::Validate::Default); +use utf8 ; + +my %error_messages = +( + de => + { + validate_fqdn_ipv46addr => 'Feld %0: "%1" ist keine gütiger Hostname oder IP-Adresse.', + }, + + 'de.utf-8' => + { + validate_fqdn_ipv46addr => 'Feld %0: "%1" ist keine gültiger Hostname oder IP-Adresse.', + }, + + en => + { + validate_fqdn_ipv46addr => 'Field %0: "%1" isn\\\'t a valid hostname or ip-address.', + } + ); + + +# -------------------------------------------------------------- + +sub getmsg + { + my ($self, $id, $language, $default_language) = @_ ; + + return $error_messages{$language}{$id} || + $error_messages{$default_language}{$id} || + $self -> SUPER::getmsg ($id, $language, $default_language) ; + } + + +# -------------------------------------------------------------- + +=pod + +see https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses + +# IPv6 RegEx +( +([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}| # 1:2:3:4:5:6:7:8 +([0-9a-fA-F]{1,4}:){1,7}:| # 1:: 1:2:3:4:5:6:7:: +([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}| # 1::8 1:2:3:4:5:6::8 1:2:3:4:5:6::8 +([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}| # 1::7:8 1:2:3:4:5::7:8 1:2:3:4:5::8 +([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}| # 1::6:7:8 1:2:3:4::6:7:8 1:2:3:4::8 +([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}| # 1::5:6:7:8 1:2:3::5:6:7:8 1:2:3::8 +([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}| # 1::4:5:6:7:8 1:2::4:5:6:7:8 1:2::8 +[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})| # 1::3:4:5:6:7:8 1::3:4:5:6:7:8 1::8 +:((:[0-9a-fA-F]{1,4}){1,7}|:)| # ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 :: +fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}| # fe80::7:8%eth0 fe80::7:8%1 (link-local IPv6 addresses with zone index) +::(ffff(:0{1,4}){0,1}:){0,1} +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3} +(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])| # ::255.255.255.255 ::ffff:255.255.255.255 ::ffff:0:255.255.255.255 (IPv4-mapped IPv6 addresses and IPv4-translated addresses) +([0-9a-fA-F]{1,4}:){1,4}: +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3} +(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]) # 2001:db8:3:4::192.0.2.33 64:ff9b::192.0.2.33 (IPv4-Embedded IPv6 Address) +) + +# IPv4 RegEx +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]) + +=cut + + +sub validate + { + my ($self, $key, $value, $fdat, $pref) = @_ ; + + if ($value =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) + { + if ($1 < 0 || $1 > 255 || + $2 < 0 || $2 > 255 || + $3 < 0 || $3 > 255 || + $4 < 0 || $4 > 255) + { + return ['validate_fqdn_ipv46addr', $value] ; + } + else + { + return undef ; + } + } + + return undef if ($value =~ /^[-.a-zA-Z0-9]+$/) ; + + if ($value !~ /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/) + { + return ['validate_fqdn_ipv46addr', $value] ; + } + return undef; + } + +# -------------------------------------------------------------- + +sub getscript_validate + { + my ($self, $arg, $pref) = @_ ; + + return ('obj.value.search(/^[-.:a-zA-Z0-9]+$/) >= 0 ', ['validate_fqdn_ipv46addr', "'+obj.value+'"]) ; + } + + +1; Added: perl/embperl/trunk/Embperl/Form/Validate/IP6Addr_Mask.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/IP6Addr_Mask.pm?rev=1912655&view=auto ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/IP6Addr_Mask.pm (added) +++ perl/embperl/trunk/Embperl/Form/Validate/IP6Addr_Mask.pm Sun Oct 1 13:06:43 2023 @@ -0,0 +1,73 @@ + +################################################################################### +# +# Embperl - Copyright (c) 1997-2008 Gerald Richter / ecos gmbh www.ecos.de +# Embperl - Copyright (c) 2008-2014 Gerald Richter +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the Perl README file. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +################################################################################### + + +package Embperl::Form::Validate::IP6Addr_Mask ; + +use base qw(Embperl::Form::Validate::Default); + +my %error_messages = +( + de => + { + validate_ip6addr_mask => 'Feld %0: "%1" ist keine gültige IP-Adresse. Geben Sie die IPv6-Adresse in der Form fe80::ffdf:3bae:884e:ba9a ein', + }, + + 'de.utf-8' => + { + validate_ip6addr_mask => 'Feld %0: "%1" ist keine gültige IP-Adresse. Geben Sie die IPv6-Adresse in der Form fe80::ffdf:3bae:884e:ba9a ein', + }, + + en => + { + validate_ip6addr_mask => 'Field %0: "%1" isn\\\'t a valid ip-address. Please enter the ipv6-address like fe80::ffdf:3bae:884e:ba9a', + } + ); + +# -------------------------------------------------------------- + +sub getmsg + { + my ($self, $id, $language, $default_language) = @_ ; + + return $error_messages{$language}{$id} || + $error_messages{$default_language}{$id} || + $self -> SUPER::getmsg ($id, $language, $default_language) ; + } + + +# -------------------------------------------------------------- + +sub validate + { + my ($self, $key, $value, $fdat, $pref) = @_ ; + if ($value !~ /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/) + { + return ['validate_ip6addr_mask', $value] ; + } + return undef; + } + +# -------------------------------------------------------------- + +sub getscript_validate + { + my ($self, $arg, $pref) = @_ ; + + return ('obj.value.search(/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/) >= 0', ['validate_ip6addr_mask', "'+obj.value+'"]) ; + } + + +1; Modified: perl/embperl/trunk/Embperl/Form/Validate/IPAddr.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/IPAddr.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/IPAddr.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/IPAddr.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::IPAddr ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( @@ -54,17 +55,17 @@ sub validate { my ($self, $key, $value, $fdat, $pref) = @_ ; - if ($value =~ /^(\d+)\.(\d+).(\d+)\.(\d+)$/) - { - if ($1 < 0 || $1 > 255 || - $2 < 0 || $2 > 255 || - $3 < 0 || $3 > 255 || - $4 < 0 || $4 > 255) - { - return ['validate_ipaddr', $value] ; - } - return undef ; - } + if ($value =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) + { + if ($1 < 0 || $1 > 255 || + $2 < 0 || $2 > 255 || + $3 < 0 || $3 > 255 || + $4 < 0 || $4 > 255) + { + return ['validate_ipaddr', $value] ; + } + return undef ; + } return ['validate_ipaddr', $value] ; } @@ -74,7 +75,7 @@ sub getscript_validate { my ($self, $arg, $pref) = @_ ; - return ('obj.value.search(/^\d+\.\d+.\d+.\d+$/) >= 0', ['validate_ipaddr', "'+obj.value+'"]) ; + return ('obj.value.search(/^\d+\.\d+\.\d+.\d+$/) >= 0', ['validate_ipaddr', "'+obj.value+'"]) ; } Modified: perl/embperl/trunk/Embperl/Form/Validate/IPAddr_Mask.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/IPAddr_Mask.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/IPAddr_Mask.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/IPAddr_Mask.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::IPAddr_Mask ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( @@ -54,13 +55,13 @@ sub validate { my ($self, $key, $value, $fdat, $pref) = @_ ; - if ($value =~ /^(\d+)\.(\d+).(\d+)\.(\d+)\/(\d+)$/) + if ($value =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/) { if ($1 < 0 || $1 > 255 || $2 < 0 || $2 > 255 || $3 < 0 || $3 > 255 || $4 < 0 || $4 > 255 || - $5 < 1 || $5 > 32) + $5 < 0 || $5 > 32) { return ['validate_ipaddr_mask', $value] ; } Added: perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr.pm?rev=1912655&view=auto ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr.pm (added) +++ perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr.pm Sun Oct 1 13:06:43 2023 @@ -0,0 +1,106 @@ + +################################################################################### +# +# Embperl - Copyright (c) 1997-2008 Gerald Richter / ecos gmbh www.ecos.de +# Embperl - Copyright (c) 2008-2014 Gerald Richter +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the Perl README file. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# $Id: IPAddr.pm 1578075 2014-03-16 14:01:14Z richter $ +# +################################################################################### + + +package Embperl::Form::Validate::IPv6Addr ; + +use base qw(Embperl::Form::Validate::Default); +use utf8 ; + +my %error_messages = +( + de => + { + validate_ipv6addr => 'Feld %0: "%1" ist keine gültige IPv6-Adresse. Geben Sie die IP-Adresse in der Form n:n:.... ein', + }, + + 'de.utf-8' => + { + validate_ipv6addr => 'Feld %0: "%1" ist keine gültige IPv6-Adresse. Geben Sie die IP-Adresse in der Form n:n:.... ein', + }, + + en => + { + validate_ipv6addr => 'Field %0: "%1" isn\\\'t a valid ipv6-address. Please enter the ip-address as n:n:....', + } + ); + +# -------------------------------------------------------------- + +sub getmsg + { + my ($self, $id, $language, $default_language) = @_ ; + + return $error_messages{$language}{$id} || + $error_messages{$default_language}{$id} || + $self -> SUPER::getmsg ($id, $language, $default_language) ; + } + + +# -------------------------------------------------------------- + +=pod + +see https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses + +# IPv6 RegEx +( +([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}| # 1:2:3:4:5:6:7:8 +([0-9a-fA-F]{1,4}:){1,7}:| # 1:: 1:2:3:4:5:6:7:: +([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}| # 1::8 1:2:3:4:5:6::8 1:2:3:4:5:6::8 +([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}| # 1::7:8 1:2:3:4:5::7:8 1:2:3:4:5::8 +([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}| # 1::6:7:8 1:2:3:4::6:7:8 1:2:3:4::8 +([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}| # 1::5:6:7:8 1:2:3::5:6:7:8 1:2:3::8 +([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}| # 1::4:5:6:7:8 1:2::4:5:6:7:8 1:2::8 +[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})| # 1::3:4:5:6:7:8 1::3:4:5:6:7:8 1::8 +:((:[0-9a-fA-F]{1,4}){1,7}|:)| # ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 :: +fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}| # fe80::7:8%eth0 fe80::7:8%1 (link-local IPv6 addresses with zone index) +::(ffff(:0{1,4}){0,1}:){0,1} +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3} +(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])| # ::255.255.255.255 ::ffff:255.255.255.255 ::ffff:0:255.255.255.255 (IPv4-mapped IPv6 addresses and IPv4-translated addresses) +([0-9a-fA-F]{1,4}:){1,4}: +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3} +(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]) # 2001:db8:3:4::192.0.2.33 64:ff9b::192.0.2.33 (IPv4-Embedded IPv6 Address) +) + +# IPv4 RegEx +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]) + +=cut + + +sub validate + { + my ($self, $key, $value, $fdat, $pref) = @_ ; + if ($value !~ /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/) + { + return ['validate_ipv6addr', $value] ; + } + return undef; + } + +# -------------------------------------------------------------- + +sub getscript_validate + { + my ($self, $arg, $pref) = @_ ; + + return ('obj.value.search(/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/) >= 0', ['validate_ipv6addr', "'+obj.value+'"]) ; + } + + +1; Added: perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr_Mask.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr_Mask.pm?rev=1912655&view=auto ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr_Mask.pm (added) +++ perl/embperl/trunk/Embperl/Form/Validate/IPv6Addr_Mask.pm Sun Oct 1 13:06:43 2023 @@ -0,0 +1,110 @@ + +################################################################################### +# +# Embperl - Copyright (c) 1997-2008 Gerald Richter / ecos gmbh www.ecos.de +# Embperl - Copyright (c) 2008-2014 Gerald Richter +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the Perl README file. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# $Id: IPAddr_Mask.pm 1578075 2014-03-16 14:01:14Z richter $ +# +################################################################################### + + +package Embperl::Form::Validate::IPv6Addr_Mask ; + +use base qw(Embperl::Form::Validate::Default); +use utf8 ; + +my %error_messages = +( + de => + { + validate_ipv6addr_mask => 'Feld %0: "%1" ist keine gültige IPv6-Adresse/Netzmaske. Geben Sie die IP-Adresse/Netzmaske in der Form n:n:..../mm ein', + }, + + 'de.utf-8' => + { + validate_ipv6addr_mask => 'Feld %0: "%1" ist keine gültige IPv6-Adresse/Netzmaske. Geben Sie die IP-Adresse/Netzmaske in der Form n:n:..../mm ein', + }, + + en => + { + validate_ipv6addr_mask => 'Field %0: "%1" isn\\\'t a valid ipv6-address/netmask. Please enter the ip-address/netmask as n:n:..../mm', + } + ); + +# -------------------------------------------------------------- + +sub getmsg + { + my ($self, $id, $language, $default_language) = @_ ; + + return $error_messages{$language}{$id} || + $error_messages{$default_language}{$id} || + $self -> SUPER::getmsg ($id, $language, $default_language) ; + } + + +# -------------------------------------------------------------- + +=pod + +see https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses + +# IPv6 RegEx +( +([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}| # 1:2:3:4:5:6:7:8 +([0-9a-fA-F]{1,4}:){1,7}:| # 1:: 1:2:3:4:5:6:7:: +([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}| # 1::8 1:2:3:4:5:6::8 1:2:3:4:5:6::8 +([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}| # 1::7:8 1:2:3:4:5::7:8 1:2:3:4:5::8 +([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}| # 1::6:7:8 1:2:3:4::6:7:8 1:2:3:4::8 +([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}| # 1::5:6:7:8 1:2:3::5:6:7:8 1:2:3::8 +([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}| # 1::4:5:6:7:8 1:2::4:5:6:7:8 1:2::8 +[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})| # 1::3:4:5:6:7:8 1::3:4:5:6:7:8 1::8 +:((:[0-9a-fA-F]{1,4}){1,7}|:)| # ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 :: +fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}| # fe80::7:8%eth0 fe80::7:8%1 (link-local IPv6 addresses with zone index) +::(ffff(:0{1,4}){0,1}:){0,1} +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3} +(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])| # ::255.255.255.255 ::ffff:255.255.255.255 ::ffff:0:255.255.255.255 (IPv4-mapped IPv6 addresses and IPv4-translated addresses) +([0-9a-fA-F]{1,4}:){1,4}: +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3} +(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]) # 2001:db8:3:4::192.0.2.33 64:ff9b::192.0.2.33 (IPv4-Embedded IPv6 Address) +) + +# IPv4 RegEx +((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]) + +=cut + + +sub validate + { + my ($self, $key, $value, $fdat, $pref) = @_ ; + if ($value !~ /^(?:(?:[0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,5}(?::[0-9a-fA-F]{1,4}){1,2}|(?:[0-9a-fA-F]{1,4}:){1,4}(?::[0-9a-fA-F]{1,4}){1,3}|(?:[0-9a-fA-F]{1,4}:){1,3}(?::[0-9a-fA-F]{1,4}){1,4}|(?:[0-9a-fA-F]{1,4}:){1,2}(?::[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(?:(?::[0-9a-fA-F]{1,4}){1,6})|:(?:(?::[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(?::[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(?:ffff(?::0{1,4}){0,1}:){0,1}(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])|(?:[0-9a-fA-F]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/([0-9]{1,3})$/) + { + return ['validate_ipv6addr_mask', $value] ; + } + if ($1 < 0 || $1 > 128) + { + return ['validate_ipv6addr_mask', $value] ; + } + return undef; + } + +# -------------------------------------------------------------- + +sub getscript_validate + { + my ($self, $arg, $pref) = @_ ; + + return ('obj.value.search(/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/([0-9]{1,3})$/) >= 0', ['validate_ipv6addr_mask', "'+obj.value+'"]) ; + } + + +1; Modified: perl/embperl/trunk/Embperl/Form/Validate/Number.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Number.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/Number.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/Number.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::Number ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my $VERSION = '2.0.0' ; Modified: perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::PosInteger ; use base qw(Embperl::Form::Validate::Integer); +use utf8 ; my %error_messages = ( Modified: perl/embperl/trunk/Embperl/Form/Validate/Select.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Select.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/Select.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/Select.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::Select ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; # -------------------------------------------------------------- Modified: perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/TimeHHMM.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::TimeHHMM ; use base qw(Embperl::Form::Validate::Default); +use utf8 ; my %error_messages = ( Modified: perl/embperl/trunk/Embperl/Form/Validate/TimeValue.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/TimeValue.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/TimeValue.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/TimeValue.pm Sun Oct 1 13:06:43 2023 @@ -17,6 +17,7 @@ package Embperl::Form::Validate::TimeValue ; use base qw(Embperl::Form::Validate::Integer); +use utf8 ; my %error_messages = ( Modified: perl/embperl/trunk/Embperl/Inline.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Inline.pm?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Inline.pm (original) +++ perl/embperl/trunk/Embperl/Inline.pm Sun Oct 1 13:06:43 2023 @@ -11,8 +11,7 @@ # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # -# $Id$ -# + ################################################################################### Modified: perl/embperl/trunk/MANIFEST URL: http://svn.apache.org/viewvc/perl/embperl/trunk/MANIFEST?rev=1912655&r1=1912654&r2=1912655&view=diff ============================================================================== --- perl/embperl/trunk/MANIFEST (original) +++ perl/embperl/trunk/MANIFEST Sun Oct 1 13:06:43 2023 @@ -57,6 +57,10 @@ Embperl/Form/Validate/EMailRFC.pm Embperl/Form/Validate/FQDN_IPAddr.pm Embperl/Form/Validate/IPAddr.pm Embperl/Form/Validate/IPAddr_Mask.pm +Embperl/Form/Validate/FQDN_IPv4_IPv6Addr.pm +Embperl/Form/Validate/IP6Addr_Mask.pm +Embperl/Form/Validate/IPv6Addr.pm +Embperl/Form/Validate/IPv6Addr_Mask.pm Embperl/Form/Validate/Integer.pm Embperl/Form/Validate/PosInteger.pm Embperl/Form/Validate/Select.pm --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org