Sascha Zimmermann: / PHP: Selbe reguläre Ausdrücke?

Hallo zusammen,

ich möchte Formulare auf meiner Webseite sowohl Client- (per JavaScript) als auch Server-seitig (per PHP) validieren. Ob das an allen Stellen so sinnvoll ist, sei mal dahin gestellt.

Um Arbeits- und Pflegeaufwand zu sparen, würde ich gerne die regulären Ausdrücke nur einmal ablegen, für PHP und JavaScript gleich. Häufig funkioniert das auch schon.

JEdoch habe Probleme bei Unicode- Ausrücken
Folgender Ausdruck liefter für é in PHP ein wahr '/[1]*$/
Folgender Ausdruck liefter für é in JavaScript ein unwahr '/[2]*$/

Gibt es ein äquvivalent für \p{L} in JavaScript? Oder hat jemand andere Ideen für die Lösung meines Problemes?

Danke!

Gruß
der Sascha


  1. \p{L} ↩︎

  2. \p{L} ↩︎

  1. Um Arbeits- und Pflegeaufwand zu sparen, würde ich gerne die regulären Ausdrücke nur einmal ablegen, für PHP und JavaScript gleich. Häufig funkioniert das auch schon.

    Abhängig davon, welche PHP Funktion (PCRE/POSIX) du verwendest sollte es auch klappen.

    JEdoch habe Probleme bei Unicode- Ausrücken
    Folgender Ausdruck liefter für é in PHP ein wahr '/[1]*$/
    Folgender Ausdruck liefter für é in JavaScript ein unwahr '/[2]*$/

    Gibt es ein äquvivalent für \p{L} in JavaScript? Oder hat jemand andere Ideen für die Lösung meines Problemes?

    Ich bin vieleicht nicht der fitteste in RegEx, aber was genau soll \p{L} bedeuten?
    ich konnte weder die bedeutung von \p finden, noch eine Ausnahme für die reine zahlenbasierte Mengenangabe {L} finden.

    Oder suchst du nach dem String "\p{L}"? dann sollte es "\p{L}" sein.


    1. \p{L} ↩︎

    2. \p{L} ↩︎

    1. Hallo Pyros,

      Gibt es ein äquvivalent für \p{L} in JavaScript? Oder hat jemand andere Ideen für die Lösung meines Problemes?

      Ich bin vieleicht nicht der fitteste in RegEx, aber was genau soll \p{L} bedeuten?

      Bei dieser Schreibweise handelt es sich um unicode Ausdrücke:
      Unicode //  Regex

      Wobei \p{L} jeder Buchstabe jeder Sprache bedeuted, zum Beispiel auch é

      Gruß
      Sascha

      1. Gibt es ein äquvivalent für \p{L} in JavaScript? Oder hat jemand

        Schlechte Nachricht.
        Ich sehe nichts davon, dass \p in Javascript als Characterklasse implementiert wäre.
        https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Gibt es ein äquvivalent für \p{L} in JavaScript? Oder hat jemand

          Schlechte Nachricht.
          Ich sehe nichts davon, dass \p in Javascript als Characterklasse implementiert wäre.
          https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp

          mfg Beat

          Hallo Beat

          Das hatte ich befürchtet, leider jedoch nicht gewusst, wo ich mir das Gefühl bestätigen lassen kann. Danke für den Link, funktioniert zur Zeit leider nicht. Probiere ich später noch mal.

          Grüße
          Sascha

      2. Bei dieser Schreibweise handelt es sich um unicode Ausdrücke:
        Unicode //  Regex

        Wobei \p{L} jeder Buchstabe jeder Sprache bedeuted, zum Beispiel auch é

        Ah, vielen Dank.

        Dann sieht es wohl wirklich so aus, als gäbe es dies noch nicht in allen Browsern, wenn überhaupt.

        1. Dann sieht es wohl wirklich so aus, als gäbe es dies noch nicht in allen Browsern, wenn überhaupt.

          Verständlich - es wird auch in vielen Umgebungen davon abgeraten \p{} zu verwenden und tendentiell auf \w zurückzugreifen - \p{L} betrachtet etwa 15.000 verschiedene Zeichen als gültig während \w nur ASCII-Buchstaben und Zahlen und einige weitere (von Locale abhängig) als Buchstabe betrachtet.

    2. Ich bin vieleicht nicht der fitteste in RegEx, aber was genau soll \p{L} bedeuten?

      Eine Unicode Zeichenklasse, nämlich aller Letterartigen Zeichen.

      mfg Beat

      --
      ><o(((°>           ><o(((°>
         <°)))o><                     ><o(((°>o
      Der Valigator leibt diese Fische