Günther S: regex pattern für username

Hallo,

beim thema regex befinde ich mich noch im lernprozess, daher habt bitte nachsicht mit mir.

ich möchte ein pattern für usernamen (bestehend aus a-z, A-Z, 0-9, - und _ und zwischen 6 und 10 zeichen lang) erstellen.
Bisher hab ich folgendes:

  
$pattern = '#\b[a-zA-Z0-9-_]{6,10}\b#';  

Das entspricht aber nicht dem, was ich oben beschrieben habe (Folgendes würde z.B. auch durch die Prüfung kommen: ***user_name+$§).
Wie bekomme ich das gewünschte Ergebnis?

Gruß,
Günther

  1. Wenn ich das richtig sehe, teilst du dem RegExp nicht mit, dass du den gesamten String zur Grundlage des Durchkämmens legst. Dies tust du mithilfe der Zeichen ^ bzw. $ unmittelbar nach, bzw. vor den Delimitern. Es ergibt sich folgendes:

    $regExp = "/^finde$/";

    Wenn du nun eine Prüfung mit preg_match vornimmst, übernimm das folgende Muster:

      
    $username = "Eingabe_User";  
    $regExp = "/^[a-zA-Z0-9-_]{6,10}$/";  
    echo (preg_match($regExp, $username) ? 'stimmt' : 'stimmt leider nicht');  
    
    

    So, jetzt gehts in die Kirche :p (Bin froh, dass es nicht das erste Mal dieses Jahr ist!)

    1. Hallo,

      $username = "Eingabe_User";
      $regExp = "/[1]{6,10}$/";
      echo (preg_match($regExp, $username) ? 'stimmt' : 'stimmt leider nicht');

      Danke, genau das war's.  
        
      
      > So, jetzt gehts in die Kirche :p (Bin froh, dass es nicht das erste Mal dieses Jahr ist!)  
      
      Bei mir auch nicht. Bei mir ist's das zweite Mal (in der Verwandschaft war eine Konfirmation).  
      Und ich bin froh, dass Weihnachten nur einmal im Jahr ist.  
        
      Gruß,  
      Günther
      

      1. a-zA-Z0-9-_ ↩︎