Problem mit Regulären Ausdrücken (undefined quantifier) im IE5
Mario Lorenz
- javascript
0 Cheatah0 Mario Lorenz0 Mario Lorenz0 Cheatah
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?
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
Vielen Dank,
ich werde es heute gleich probieren.
Gruss, Mario Lorenz
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
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
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