Webstatt.org - Community seit 2006 - 2012 (2024?)

Regex: Gültigkeit einer Variablen

user-273
05.04.2008 17:38

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 traurig

Danke für die Hilfe

MFG
okraina

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';
}

?>

Avatar user-271
05.04.2008 18:19

so nebenbei...der e modifier wird ignoriert, er gilt nur in preg_replace zwinkern

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] Fettes Grinsen

#!/bin/bash
traurig){ neutral:& };:
user-273
05.04.2008 18:34

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 zwinkern