Mein Regex funktioniert leider nicht

Dimenson

Erfahrenes Mitglied
Hallo zusammen,

mal wieder stehe ich vor dem leidigen Thema Regex, ich bin einfach zu blöde dafür ^^.

Ich versuche momentan einen String der in etwa so aussieht

hanswurstisttoll

oder

dönerschmeckt

mit einem preg_match zu überprüfen ob dieser String passende Zeichen enthält.

So sieht mein Versuch aus:

PHP:
$regexp='/^[A-Za-zäöüßÄÖÜ]$/';
      if (preg_match($regexp, $meinstring)) {
            echo "Valid";
      } else {
            echo "Not Valid";
      }

Aber natürlich liegt es am meinem Regex.
Vorschläge ?

Danke im voraus.

Gruß

Dimenson
 
Ha,

hinbekommen:
$regexp='/[a-zA-Z0-9äöüßÄÖÜ]+$/';

Jetzt habe ich auch das Dach "^" verstanden, naja glaub ich zumindest das mit der Angabe eine Bedingung ist die Zeichen verhanden sein müssen und nicht können.

Oder liege ich da falsch ?
 
Schade klappt doch nicht so ganz.
Wenn ich nun die Umlaute weglasse, sagt er immer noch Valid.
******e ^^




PHP:
$ny=array('hüüs:11d');
$myarr=explode(":",$ny);

                    $regexp='/[a-zA-Z0-9]+$/';
                    if (preg_match($regexp, $myarr[0])) {
                        echo "valid";
                    } else {
                        echo "nicht valid";
                    }
 
Zuletzt bearbeitet:
Dein Code ist auch falsch.
1) explode erwartet einen String als 2. Parameter, du übergibst aber ein Array
2) Wenn dir Groß- und Kleinschreibung egal ist, nutze das i Flag. (ist kein Fehler, aber schöner)

PHP:
$ny= 'hüüs:112d';
$myarr=explode(":",$ny);
$regexp='/[a-z0-9äüöß]+$/i';
if( preg_match($regexp, $myarr[0]) ) {
  echo "valid";
} 
else {
  echo "nicht valid";
}
 
Sorry, mein Code ist im Original natürlich richtig. Habe hier schnell den Code reingeschrieben. Sauber dein regex scheint zu funktionieren. Danke.
 
Also,

irgendwie macht mich das verrückt.

Im Prinzip brauche 2 Regex. Einmal ohne Umlaute und einmal mit.

Ich möchte einfach einen String je nach Bedingung mit preg_match mit dem einem Regex oder mit dem anderen Regex prüfen.

Jetzt habe ich folgendes getestet:

Eingabe: domös
PHP:
                    $meinstring="domös";
                    $regexp='/[a-z0-9]+$/i'; 
                    if (preg_match($regexp, $meinstring)) {
                        echo "valid";
                    } else {
                        echo "nicht valid";
                    }
Ausgabe: Valid

Tja da hätte ich gerne das er "nicht valid" ausgibt.
 
Dir fehlt auch das ^ am Anfang. dein regex findet jetzt nur das "s" am Ende von domös.
^ bedeutet, der String muss mit dem nachfolgenden Zeichen beginnen
$ bedeutet der String muss mit dem vorherigen Zeichen enden
 
Ok, ich bin mal ein Stück weiter:

Das funktioniert:

PHP:
                $domain_explode[0]="dömos";          
                   
                    $regexp='/^[a-z0-9äüöß]+$/i'; 
                    $domaa=(string)$domain_explode[0];
                    if (preg_match($regexp, $domaa)) {
                        echo "ist valid";
                    } else {
                        echo "ist nicht valid";
                    }

Das nicht:

Und die Post eingabe ist domös.de
PHP:
$domain_explode=explode(".",$_POST['new-domain']);
                
              
                   
                    $regexp='/^[a-z0-9äüöß]+$/i'; 
                    $domaa=(string)$domain_explode[0];
                    if (preg_match($regexp, $domaa)) {
                        echo "ist valid";
                    } else {
                        echo "ist nicht valid";
                    }

Kann mir einer erklären warum ? Verstehe ich leider nicht ganz.
 

Neue Beiträge

Zurück