最終更新:2010-11-25 (木) 11:40:45 (3546d)  

エスケープ
Top / エスケープ

JavaScript

  • JavaScriptの文字列リテラルには幾つか含めることが出来ない文字がある。
  • JSONの仕様的には「エスケープしなくてはならない」と定められてないのだが、エスケープが必要な文字がある
for(i=0;i<65536;i++) {try { new Function("a", 'var s="' +String.fromCharCode(i)+ '"' ) }catch(e){ console.log(i) } } 
Firefox 3.610,13,34,92,8232,8233
Chrome810,13,34,92,8232,8233
Safari510,13,34,92,8232,8233
Opera10.6310,13,34,8232,8233
IE9(standard)0,10,13,34,92,8232,8233
IE9(quirks)0,10,13,34,92
  • 10,13,34,92,8232,8233はそれぞれ、 \n, \r, ダブルクオートの中の", \, \u2028, \u2029
  • Operaだけ evalやnew Functionで "\" が入っててもエラーにならない。ソース中に書けばエラーだが。
  • IE9はnulもダメ。互換モードだと\u2028,\u2029通る。

参考

関連