Hi leutz
hab ein beispiel gemacht, dass nicht ganz funktioniert... Ich hoffe es ist verständlich...
<?php
$text = array();
$text[] = 'ggg'; // sollte ok sein
$text[] = 'ggg:'; // sollte falsch sein
$text[] = 'ggg:ggg'; // sollte ok sein
$text[] = 'ggg:ggg_'; // sollte falsch sein
$text[] = 'ggg:ggg_ggg'; // sollte ok sein
$text[] = 'ggg:ggg_ggg_'; // sollte falsch sein
foreach($text as $txt => $val) {
echo $val.' => '.checkvar($val).'</br>';
}
function checkvar($var) {
if(preg_match("/[a-z]*(?::[a-z]+(?:_[a-z]+)?)?/e",$var)) return 'ok';
else return 'falsch';
}
?>
Leider sagt er bei allen sechs ok :(
xyz-48ke für die Hilfe
MFG
xyz-163
EDIT:
Hab die Lösung von jemand anderem bekommen... Trotzdem danke!
<?php
function checkvar($var) {
if(preg_match("/^[a-z]+(?::[a-z]+(?:_[a-z]+)?)?$/e",$var)) return 'ok';
else return 'falsch';
}
?>
so nebenbei...der e modifier wird ignoriert, er gilt nur in preg_replace ;)
was du noch machen könntest, weiss nciht ob es erlaubt sein soll, gross und kleinschreibung, entweder über den i modifier, oder einfach [a-zA-Z] :D
Oh hab ich gar nicht gemerkt, dass e noch drin war. der plattern war davor in einer preg_replace anweisung drin. Das mit der gross und kleinschreibung soll nicht erlaubt sein aber trotzdem danke ;)