* escape (CSS) [1] [CODE(CSS)@en[[[IDENT]]]] 中、 [CODE(CSS)[[[\]]]] の直後に[[空白]]: - [CODE(char)[[[U+0020]]]] - [CODE(char)[[[U+0009]]]] - [CODE(char)[[[U+000A]]]] - [CODE(char)[[[U+000D]]]] - [CODE(char)[[[U+000D]]]] [CODE(char)[[[U+000A]]]] - [CODE(char)[[[U+000C]]]] - [CODE(char)[[[U+00A0]]]] - [CODE(char)[[[U+2000]]]] - [CODE(char)[[[U+3000]]]] - [CODE(char)[[[U+FEFF]]]] [2] >>1 [[WinIE 6]] は [CODE(char)[[[\]]]] の後に[[空白]]があると、 [[escape]] 全体を無視するようです。 ;; [CODE(char)[[[\]]]] の後が [CODE(char)[[[U+000D]]]] や [CODE(char)[[[U+000A]]]] の場合、[CODE(HTMLe)@en[[[textarea]]]] にいれた時点で [CODE(char)[[[U+000D]]]] [CODE(茶r)[[[U+000A]]]] に[[正規化]]されてしまうので、 >>1 の方法では検証できないのですが・・・。 >>1 の [CODE(char)[[[U+000D]]]] [CODE(char)[[[U+000A]]]] の例は [CODE(CSS example)[[[di]]]] ([[空白]]) [CODE(CSS example)[[[v]]]] と解釈されているようです。 ([[名無しさん]]) [3] [CODE(CSS)@en[[[IDENT]]]] 中の [CODE(char)[[[\]]]] の後に [CODE(char)[[[U+0000]]]]: ([[名無しさん]]) [4] >>3 [[WinIE 6]] では [CODE(HTMLe)@en[[[textarea]]]] に入れた時点 (or もっと前) で [CODE(char)[[[U+0000]]]] 以下が捨てられてるみたいです。。。 ([[名無しさん]]) [5] [[WinIE 6]] では [CODE(char)[[[\]]]] の後に[[数字]]や[[空白]]以外があるときは [CODE(char)[[[\]]]] を捨てるみたいです。 * escape (正規表現) [6] [[ES3]] によると[[正規表現]]中の \ の後に1文字続けてその[[文字]]自体を表現できるのは、 その[[文字]]が [[IdentifierPart]] に含まれない場合だけのはずです。 ;; つまるところ、 \X や \A のような未定義のエスケープや、[[文字クラス]]内で使えない \B のようなエスケープは、エラーになるはずです。しかし、実際にはブラウザはこれらも2文字目を表す[[エスケープ]]と解釈するみたいです。 ;; [[ES3]] 通りの解釈にしたら、 \$ で $ を表すこともできなくなってしまいます。 というかほとんどの[[文字]]が escape できなくなってしまいます。おかしくないですか? [7] [[\x]] や [[\c]] や [[\u]] や[[八進数エスケープ]]の項も参照。 [8] 末尾に \ がくるのはどのブラウザでも構文エラーになるみたいです。