Reguläre Ausdrücke

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Reguläre Ausdrücke

    hi,
    ich hab ein mehr oder weniger großes Problem

    Normal sollte ja die Schreibweiße der Regulären Ausdrücke in den meißten Programmiersprachen gleich sein, oder? (hoffe ich mal)

    Mir ist aufgefallen, dass Javascript diese Ausdrücke anders Handhabt als PHP, denn:

    PHP-Code:
    <?php

    $str 
    "10301520";

    $str preg_replace("/(?!<[0-9]{2}:[0-9]{2})([0-9]{2})([0-9]{2})/i""$1:$2"$str);

    echo 
    $str
    //Ausgabe: 10:3015:20

    ?>
    Funktioniert so wie ich es will

    aber das selbe in JS geht nicht:

    PHP-Code:

    var1 
    "10301520";

    var1 var1.replace(/(?!<[0-9]{2}:[0-9]{2})([0-9]{2})([0-9]{2})/ig"$1:$2");

    alert(var1);
    //Ausgabe: 10:30:15:20 
    Mach ich einen Fehler, oder JS???

    Das Problem kommt nur wenn ich versuche den vorderen Teil zu negieren.
    in meinen Unterlagen zu Regulären Audrücken steht ein Beispiel für eine solche negierung:
    PHP-Code:
    /(?<!text1)text2
    Man beachte das Größerzeichen (..?<!...)
    Wenn ich versuche dies 1zu1 in JS auszuführen, gibt er mit einen Syntaxfehler im Regulären Ausdruck zurück, PHP hat damit jedoch keine Probleme. woran liegt das??

    Ich habe JS mit dem IE 6.0, Opera 7 und 8 getestet ->negativ
    jedoch mit PHP und dem Regex Coach ging alles wunderbar

    Ich hoffe mir kann da jemand helfen

    Phil

  • #2
    Re: Reguläre Ausdrücke

    Original geschrieben von PhilW
    Normal sollte ja die Schreibweiße der Regulären Ausdrücke in den meißten Programmiersprachen gleich sein, oder? (hoffe ich mal)
    nein, ich würde nicht davon ausgehen, dass das RegEx-objekt in javascript den vollen "leistungsumfang" von perl-kompatiblen regulären ausdrücken beherrscht.


    http://de.selfhtml.org/javascript/objekte/regexp.htm
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      okay, sowas in der art hab ich mir gedacht. schade...

      dann muss ich das problem eben umgehen...


      danke für deine schnelle Antwort,

      Phil

      Kommentar

      Lädt...
      X