<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite>B 互換性 (Compatibility)</cite> (<time>2002-07-19 22:24:55 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/B_Compatibility.html#section-B.1.2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/B_Compatibility.html#section-B.1.2</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> に従えば \069 みたいなのは八進数のエスケープではないことになってしまいますが、
ブラウザで試してみると \06 + 文字 9 として処理されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
() が8個ないときの \8 の解釈</p><p><anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0Aif%20(%22%5Cx08%22.match%20(%2F%5C8%2F))%20%7B%0A%20%20document.write%20(%22U%2B0008%22)%3B%0A%7D%20else%20if%20(%228%22.match%20(%2F%5C8%2F))%20%7B%0A%20%20document.write%20(%22U%2B0038%20DIGIT%20EIGHT%22)%3B%0A%7D%20else%20if%20(%22%5C%5C8%22.match%20(%2F%5C8%2F))%20%7B%0A%20%20document.write%20(%22U%2B005C%20REVERSE%20SOLIDUS%2C%20U%2B0038%20DIGIT%20EIGHT%22)%3B%0A%7D%20else%20%7B%0A%20%20document.write%20(%22Unknown%22)%3B%0A%7D%0A%3C%2Fscript%3E" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0Aif%20(%22%5Cx08%22.match%20(%2F%5C8%2F))%20%7B%0A%20%20document.write%20(%22U%2B0008%22)%3B%0A%7D%20else%20if%20(%228%22.match%20(%2F%5C8%2F))%20%7B%0A%20%20document.write%20(%22U%2B0038%20DIGIT%20EIGHT%22)%3B%0A%7D%20else%20if%20(%22%5C%5C8%22.match%20(%2F%5C8%2F))%20%7B%0A%20%20document.write%20(%22U%2B005C%20REVERSE%20SOLIDUS%2C%20U%2B0038%20DIGIT%20EIGHT%22)%3B%0A%7D%20else%20%7B%0A%20%20document.write%20(%22Unknown%22)%3B%0A%7D%0A%3C%2Fscript%3E</anchor-external></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE 7</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor>: <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0038</anchor></code> <code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DIGIT EIGHT</anchor></code></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> 9.61: <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0008</anchor></code></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> 3: <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+005C</anchor></code> <code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">REVERSE SOLIDUS</anchor></code>,
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0038</anchor></code> <code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DIGIT EIGHT</anchor></code></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列リテラル</anchor>での \8 の解釈</p><p><anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Adocument.write%20(encodeURIComponent%20(%22%5C8%22))%3B%0D%0A%3C%2Fscript%3E" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Adocument.write%20(encodeURIComponent%20(%22%5C8%22))%3B%0D%0A%3C%2Fscript%3E</anchor-external></p><p>どのブラウザでも <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0038</anchor></code> <code class="charname" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DIGIT EIGHT</anchor></code></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES3</anchor> によれば \<var>n</var> で <var>n</var> が () の数より多いと <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SyntaxError</anchor> ですが
(15.10.2.9 の算法、または 15.10.2.11 の informative note)、
実際にはどのブラウザでも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">八進エスケープ</anchor>として解釈されます。</p><p><anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Adocument.write%20(%22%5Cx04%22.match(%2F%5C4%2F)%3F1%3A0)%3B%0D%0A%3C%2Fscript%3E" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Adocument.write%20(%22%5Cx04%22.match(%2F%5C4%2F)%3F1%3A0)%3B%0D%0A%3C%2Fscript%3E</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> ちなみに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> ではエラーになります。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES3</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規表現</anchor>内の () 
の数が、という風に書かれていて、そこより前、とは言っていません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor>
でも、 /\5((((()))))/ のように括弧が後から出てきてもエラーにはなりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字クラス</anchor>内の \<var>n</var> の解釈。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES3</anchor> によれば \0 以外は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SyntaxError</anchor> ですが、実際にはどのブラウザでも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エスケープ</anchor>として解釈されます。</p><p>\1
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Adocument.write%20(%22a%5Cx01%22.match(%2F(a)%5B%5C1%5D%2F)%3F1%3A0)%3B%0D%0A%3C%2Fscript%3E" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0D%0Adocument.write%20(%22a%5Cx01%22.match(%2F(a)%5B%5C1%5D%2F)%3F1%3A0)%3B%0D%0A%3C%2Fscript%3E</anchor-external>:
どのブラウザでも U+0001 として解釈されます。</p><p>\8
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0Adocument.write%20(%22a8%22.match(%2F(a)%5B%5C8%5D%2F)%3F1%3A0)%3B%0A%3C%2Fscript%3E" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Cscript%3E%0Adocument.write%20(%22a8%22.match(%2F(a)%5B%5C8%5D%2F)%3F1%3A0)%3B%0A%3C%2Fscript%3E</anchor-external>:
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> 以外では <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0038</anchor></code> と、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> では <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0008</anchor></code> と解釈されます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> でも <code xmlns="http://www.w3.org/1999/xhtml" class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0038</anchor></code> とだけみなされます。</comment-p></body></html>