Announcement

Collapse
No announcement yet.

Nur Buchstaben und Zahlen im String

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nur Buchstaben und Zahlen im String

    Hallo,
    ich möchte aus einem String alle Zeichen entfernen, die keine Buchstaben, Zahlen oder ein Bindestrich sind.
    Dazu habe ich folgenden Code:
    PHP Code:
    $string preg_replace("/[^0-9A-Za-zÄäÖöÜüß-]/"""$string); 
    Nun bleiben aber solche exotischen Zeichen wie "„" im String. Dabei ist es doch eine Whitelist, die NUR die genannten Zeichen zulässt ..

    Kann sich das jemand erklären?

    Vielen Dank schonmal!

    Johannes

  • #2
    [^\x30-\x39|\x41-\x5a|\x61-\x7a]

    Gib die Zeichenbereiche direkt an. Im obigen Beispiel fehlen noch der Bindestrich und die Umlaute
    Christian

    Comment


    • #3
      Vielen Dank erstmal! Was genau meinst du mit "Zeichenbereichen"? Wo bekomme ich diese her?

      Comment


      • #4
        \x30-\x39 -> Ziffern
        \x41-\x5a -> Großbuchstaben
        \x61-\x7a -> Kleinbuchstaben

        Wo bekomme ich diese her?
        Aus jeder ASCII Tabelle
        Christian

        Comment


        • #5
          Hallo,
          Originally posted by herlos View Post
          ...Nun bleiben aber solche exotischen Zeichen wie "„" im String. Dabei ist es doch eine Whitelist, die NUR die genannten Zeichen zulässt ..

          Kann sich das jemand erklären?
          Nein, ist bei meinem Test auch nicht so gewesen. Auf alle Fälle solltest du das letzte - maskieren, da es sonst als Bereichstrenner angesehen werden kann. (Ist ja ein Bestandteil der Syntax)

          PHP Code:
          echo preg_replace("/[^0-9A-Za-zÄäÖöÜüß\-]/"""'la-ber„„'); 
          liefert bei mir:
          Code:
          la-berbdquo
          Ist denn dein "„" tatsächlich ein solches oder ist es im String als HTML-Entitie geschrieben („) und wird nur bei der Ausgabe zu einem Solchen? Siehe mein Beispiel: wenn du den String "la-ber„„" mit echo ausgibst, dann steht da "la-ber„„", aber nur das Erste der „ wird ersetzt!

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X