Hi,
Ist 'hallo' ein "non-RegExp object obj"?
zunächst: 'hallo' ist ein Objekt. Entweder ist es ein RegExp-Objekt, oder es ist es nicht. Was davon trifft Deiner Meinung nach zu? :-)
Meine Meinung ist irrelevant. Ich interpretiere kein Java-Script.
das ist richtig. Dennoch unterstelle ich, dass Deine Antwort hier mit der eines JavaScript-Interpreters übereinstimmen würde.
if( "bla(bla".match( /(/ ) ){ alert('OK' );}
Ausgabe: OK
if( "bla(bla".match( '(' ) ){ alert('OK' );}
Ausgebe: FEHLER
Daraus schliesse ich, dass ' ' von firefox nicht als obj behandelt werden kann,
Ich hingegen schließe, dass innerhalb von Singlequotes ein anderes Escaping stattfindet als innerhalb von Slashes. Test:
alert('(');
und nur günstige Umstände wie im Falle von 'hallo' hier funktionieren.
Günstige Umstände entstehen durch die Anwendung von Grundprinzipien: Wenn Du einen Wert in einen Kontext bringst, musst Du ihn kontextspezifisch kodieren. Ist der Wert beispielsweise eine Regular Expression, die innerhalb eventueller Delimiter "(" lauten soll, und wird dieser Wert in den JavaScript-String-Kontext durch Singlequotes gebracht, sind alle darin enthaltenen Singlequotes und Backslashes durch einen Backslash zu kodieren. Und siehe: Kaum macht man's richtig, schon funktioniert's ;-)
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