Mario Lorenz: Problem mit Regulären Ausdrücken (undefined quantifier) im IE5

Folgendes Replace entfernt bbcodes in eckigen Klammern [] aus einem Texteingabefeld:

killtext = killtext.replace(/[/{0,1}.+?]/g, "");

Das funktioniert bestens in NS6.0+ IE6.0+, jedoch nicht im IE5.
Dort bekomme ich die Fehlermeldung "undefined quantifier" mit dem Zeiger auf die 0.

Weiß jemand einen Rat?

  1. Hi,

    killtext = killtext.replace(/[/{0,1}.+?]/g, "");
    [Im IE 5] bekomme ich die Fehlermeldung "undefined quantifier" mit dem Zeiger auf die 0.

    klingt nach einer idiotischen Unfähigkeit des IE. Laut den Regeln von Regular Expressions ist "{0,1}" identisch mit "{,1}" und (in diesem Kontext) "?". Probiere es damit.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Vielen Dank,

      ich werde es heute gleich probieren.

      Gruss, Mario Lorenz

      1. Hallo Cheatah,

        ich habe es jetzt mit folgendem Ausdruck probiert. In IE6, NS6 funktioniert es nach wievor. Im IE5 nicht. Dafür konnte ich jetzt den genauen Auslöser für den undefined quntifier herausbekommen. Es ist in dem Fall das zweite Fragezeichen nach dem +.

        Können Sie mir vielleicht noch einmal helfen?

        killtext = killtext.replace(/[/?.+?]/g, "");

        Vielen Dank,

        Mario Lorenz

        1. Hi,

          Es ist in dem Fall das zweite Fragezeichen nach dem +.
          Können Sie mir vielleicht noch einmal helfen?

          wenn Du versprichst, mich nie wieder zu siezen, gebe ich Dir den Tipp, eine negierte Zeichenklasse zu versuchen ;-)

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            vielen Dank für den Denkanstoß. Ich habe das jetzt jedoch nur mit einer  einer normalen Zeichenklasse lösen können:

            Für alle Mitleser:

            Dieses replace entfernt alle BBCodes (beginnen mit "[", enden mit "]" aus einem Textfeld, die kleingeschrieben sind und Zahlen, "=" und "*" enthalten können.

            killtext = killtext.replace(/[/?[a-z1-9=*]+]/g, "");

            Gruss, Mario