JavaScriptの " と ' について

とほほのWWW入門 > とほほのJavaScript入門 > JavaScriptの " と ' について
1999年10月31日版

■ クォーテーションに関する注意

JavaScriptの文字列は、ダブルクォーテーション(")、もしくはシングルクォーテーション(')を用いて、以下のように表します。
  ○ document.write("ABC");
  ○ document.write('ABC');
ダブルクォーテーション(")の中でシングルクォーテーション(')を使いたい時、またはその逆の場合は、普通に記述して構いません。
  ○ document.write("<FONT COLOR='red'>ABC</FONT>");
  ○ document.write('<FONT COLOR="red">ABC</FONT>');
しかし、ダブルクォーテーション(")の中でダブルクォーテーション(")を、シングルクォーテーション(')の中でシングルクォーテーション(')を使うと、JavaScriptエラーになってしまいます。
  × document.write("<FONT COLOR="red">ABC</FONT>");
  × document.write('<FONT COLOR='red'>ABC</FONT>');
これは、ダブルクォーテーション(")の中ではダブルクォーテーション(")が、シングルクォーテーション(')の中ではシングルクォーテーション(')が「文字列の終わり」という特別な意味をもっているからです。このように、特別な意味をもつ文字をメタ文字と呼びます。

では、ダブルクォーテーション(")の中にシングルクォーテーション(')があり、その中にもうひとつクォーテーションを書きたい場合はどうすればいいでしょうか?

  × document.write("<XXX onClick='alert("ABC")'");
  × document.write("<XXX onClick='alert('ABC')'");
この時には、ダブルクォーテーション(")やシングルクォーテーション(')の前にバックスラッシュ(\)を記述します。
  ○ document.write("<XXX onClick='alert(\"ABC\")'");
  ○ document.write("<XXX onClick='alert(\'ABC\')'");
バックスラッシュ(\)もメタ文字のひとつであり、「次に続くメタ文字の意味を打ち消す」という意味があります。これを、「バックスラッシュ(\)でエスケープする」と言います。バックスラッシュ(\)自身を書きたい時は、バックスラッシュ(\)をふたつ書きます。
  ○ document.write("バックスラッシュ(\\)自身を・・・");
こうしたクォーテーションの規則は、HTMLの属性値を指定する個所やPerlによる文字列を記述する部分でも同様(若干規則が異なりますが・・・)の規則があります。

Copyright (C) 1999 とほほ
http://wakusei.cplaza.ne.jp/twn/wwwjsz02.htm