Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

php regex

Diskussion: php regex im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hi ! Ich habe folgendes einfaches Probelem: Ich will einen Datumsstring auf Gültigkeit prüfen. So sieht der String aus: ...

Antwort
Alt 31.03.07, 15:50   #1 (permalink)
 
Benutzerbild von mauralix
 
Registriert seit: 17.04.06
mauralix Leistung: 8086
Likes: 3
Standard php regex

Anzeige

Hi !

Ich habe folgendes einfaches Probelem:
Ich will einen Datumsstring auf Gültigkeit prüfen.
So sieht der String aus: 2007-01-01-00-00
Jahr-Monat-Tag-Stunde-Minute.

probiert hab ich das so

PHP-Code:
<?php
echo preg_match("/[0-9]-[0-9]-[0-9]-[0-9]-[0-9]/","2007-01-01-00-00");
?>
Funktioniert sowieso nicht richtig... Ich hab nur kaum Erfahrung mit regexs. Kann mir jemand zeigen wie das richtig geht. Hab grad keine und Lust und Zeit mich näher mit dem Thema zu beschäftigen auch wenn es vllt wichtig wäre.
mauralix ist offline   Mit Zitat antworten
Alt 31.03.07, 15:57   #2 (permalink)
 
Registriert seit: 15.12.05
vis.p Leistung: Facit NTK
vis.p eine Nachricht über ICQ schicken
Likes: 0
Standard

hi

du hast dich bei der regexp nur ein bisschen vertan:

Code:
echo preg_match("/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]/","2007-01-01-00-00");
[0-9] definiert _eine_ Ziffer von 0 bis 9. willst du das jahr abfragen, brauchst du natürlich vier solcher Blöcke

mfg
vsip
vis.p ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 31.03.07, 17:24   #3 (permalink)
Administrator
 
Benutzerbild von Mackz
 
Registriert seit: 02.10.01
Mackz Leistung: Pentium IMackz Leistung: Pentium I
Likes: 30
Standard

oder
PHP-Code:
preg_match("/^[0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}-[0-9]{2,2}-[0-9]{2,2}$/","2007-01-01-00-00"); 
In den geschweiften Klammern wird Minimal- und Maximal-Anzahl angegeben.
Außerdem habe ich noch ^ und $ angegeben, welche für Suchmuster Anfang und Ende stehen. Sonst wäre "foo-2007-01-01-00-00-bar" auch true.
__________________
RL sux big time... auch 2012!

Deleting pr0n is like killing your best friend

[HaBo] bei Facebook - Werde Fan
Mackz ist offline   Mit Zitat antworten
Alt 31.03.07, 18:35   #4 (permalink)
 
Registriert seit: 30.06.06
sp!n Leistung: Facit NTK
sp!n eine Nachricht über ICQ schicken
Likes: 0
Standard

wenn du Testen willst, ob die Eingaben auch korrekt sind würde ich folgendermaßen vorgehen. Du explodest den String mit - und prüfst bei den ersten drei Arrayeinheiten mit checkdate ob es ein korrektes Datum ist. Für die Zeit kannst du ja einfach prüfen ob es der Stunde kleiner als 24 und die Minuten kleiner als 60 sind.
sp!n ist offline   Mit Zitat antworten
Alt 31.03.07, 19:28   #5 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Arrow

Zitat:
Original von Mackz
In den geschweiften Klammern wird Minimal- und Maximal-Anzahl angegeben.
Da die beiden Werte hier aber immer identisch sind, genügt auch eine verkürzte Schreibweise:

PHP-Code:
preg_match '/^\d{4}-\d{2}-\d{2}-\d{2}-\d{2}$/''2007-01-01-00-00' ); 
Das ändert natürlich nichts daran, dass das angegebene Datum dennoch sinnfrei sein kann. "2452-46-99-87-72" wäre nämlich eine gültige Angabe für die RegEx, aber zur Datumsauswertung völliger Nonsens (siehe sp!ns Kommentar).
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 31.03.07, 20:30   #6 (permalink)
Themenstarter
 
Benutzerbild von mauralix
 
Registriert seit: 17.04.06
mauralix Leistung: 8086
Likes: 3
Standard

Vielen Dank für eure nützlichen Antworten. Ich bin mir jetzt schon sicher, dass ich irgendwann die RegularExpressions lernen muss. Diesmal bin ich noch einfach davon gekommen.
mauralix ist offline   Mit Zitat antworten
Alt 31.03.07, 20:35   #7 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

ich habn gutes Tutorial über die Regex, hat mir sehr geholfen damals

http://tut.php-q.net/regex.html
reaLInsanity ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » php regex
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regex Look-around assertions Virus Code Kitchen 4 30.09.09 18:10
RegEx Frage enkore Code Kitchen 4 14.08.09 23:52
Regex mit grep Serow Linux/UNIX 4 24.03.09 13:55
Regex in C++ jesus Code Kitchen 4 17.01.07 18:15
REGEX: ich suche eine RegEx boppy (Web-) Design und webbasierte Sprachen 3 11.03.05 17:09


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61