peter mueller: preg_match

Hallo

Ich möchte, dass die Variable $name folgende Zeichen enthalten darf: 0 bis 9, a bis z, A bis Z und üöäÖÜÄ.

Weiter dürfen die Zeichen .,_ und der Leerschlag weder am Anfang noch am Ende der Zeichenkette vorkommen.

Mit dem folgenden Code funktioniert fast alles, ausser dass am Anfang der Zeichenkette keines der Zeichen üöäÜÖÄ vorkommen kann ($result = false).

Was muss ich ändern, damit auch das erste Zeichen ein Umlaut sein kann?

Besten dank.
Peter

if ((preg_match("/[1][0-9a-zA-ZüöäÄÖÜ_.\ ]{0,}[0-9a-zA-ZüöäÄÖÜ]$/",$name)=="1") or (preg_match("/[2]$/",$name)=="1"))
  $result="ok";
 else
  $result="false";


  1. 0-9a-zA-Z ↩︎

  2. 0-9a-zA-ZüöäÄÖÜ ↩︎

  1. Hi,

    Was muss ich ändern, damit auch das erste Zeichen ein Umlaut sein kann?

    if ((preg_match("/[1][0-9a-zA-ZüöäÄÖÜ_.\ ]{0,}[0-9a-zA-ZüöäÄÖÜ]$/",$name)=="1") or (preg_match("/[2]$/",$name)=="1"))
      $result="ok";
    else
      $result="false";

    zwei kleine Flüchtigkeitsfehler:

    if ((preg_match("/[3][0-9a-zA-ZüöäÄÖÜ_.\ ]*[0-9a-zA-ZüöäÄÖÜ]$/",$name)=="1") or (preg_match("/[4]$/",$name)=="1"))
      $result="ok";
    else
      $result="false";

    • äöüÄÖÜ war in der ersten Zeichengruppe nicht mit drin
    • Der Punkt muss maskiert werden, weil er sonst für ein beliebiges Zeichen steht.

    Schönen Gruß aus Bilk

    Rainer


    1. 0-9a-zA-Z ↩︎

    2. 0-9a-zA-ZüöäÄÖÜ ↩︎

    3. 0-9a-zA-ZäöüÄÖÜ ↩︎

    4. 0-9a-zA-ZüöäÄÖÜ ↩︎