perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 21
Click for quality!




12.02.2012 / 02:04

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDatumseingabe überprüfen
Seitenanfang
Hallo!

Ich möchte überprüfen, ob ein bestimmter Wert in einem Zahlenbereich liegt um Falscheingaben im Datumsformat zu verhindern.
Nicht numerische Eingaben machen jetzt Probleme. Hierbei werden die Eingabe 'xx' als falsch, '0.' als falsch, aber '1.' als wahr ausgegeben.

print "$monat ist ", monat_valid($monat)?"gueltig":"ungueltig","\n";
sub monat_valid
{
return 0 if $monat <1 or $monat>12;
return 1;
};

Prüfe ich zunächst, ob es sich um eine Zahl handelt, werden 01 bis 09 als falsch ausgegeben:

print "$monat ist ", monat_valid($monat)?"gueltig":"ungueltig","\n";
sub monat_valid
{
return 0 if $monat ne int($monat);
return 0 if $monat <1 or $monat>12;
return 1;
};

Was mache ich falsch?

Datum: 19.03.2007-13:52

Beitragre: Datumseingabe überprüfen
Seitenanfang
Huch, doch so viele konstruktive Beiträge... Der Vollständigkeit wegen will ichs dann mal selbst beantworten:

return 0 unless $monat =~ /^\d{2}$/ && $monat <= 12 && 1 <= $monat;

Gruß,
Volle

Datum: 20.03.2007-08:43

Beitragre: Datumseingabe überprüfen
Seitenanfang
Folgender RegExp laesst Zahleneingaben von 1 - 12 und bei Zahlen von 1 - 9 auch mit fuehrender Null zu.

#!/usr/bin/perl

use strict;
use warnings;

foreach my $month ( '0' .. '9', '01' .. '09', '10' .. '19') {

if($month =~ /^(?:[1]?[12]|10|[0]?[1-9])$/) {
print "MATCH\t$month\n";
}
else {
print "NO MATCH\t$month\n";
}
}

-- 3a2d275a5c68d91e376c562e86419f35

Datum: 20.03.2007-14:12

Beitragre: Datumseingabe überprüfen
Seitenanfang
Folgender RegExp laesst Zahleneingaben von 1 - 12 und bei Zahlen von 1 - 9 auch mit fuehrender Null zu.

#!/usr/bin/perl

use strict;
use warnings;

foreach my $month ( '0' .. '9', '01' .. '09', '10' .. '19') {

if($month =~ /^(?:[1][012]|[0]?[1-9])$/) {
print "MATCH\t$month\n";
}
else {
print "NO MATCH\t$month\n";
}
}

-- 3a2d275a5c68d91e376c562e86419f35

Datum: 20.03.2007-14:17

-






-
-