169

HTML ページにオメガ (Ω) を挿入する必要があります。そのために HTML エスケープ コードを使用しているので、ΩΩ を記述して取得できます。それを HTML 要素に入れると、それで問題ありません。ただし、それを JS に入れようとすると、たとえばvar Omega = Ω、そのコードが JS として解析され、すべてが機能しません。誰でもこれについて行く方法を知っていますか?

4

4 に答える 4

249

私はあなたが実際に大文字のオメガを含む文字列Omegaになりたいと思っていると思いますか? その場合、次のように記述できます。

var Omega = '\u03A9';

(Ω はコードポイント U+03A9 を持つ Unicode 文字であるため、つまり、4 桁の 16 進数として書かれていることを除いては です。03A9)937

于 2012-10-26T19:24:01.423 に答える
59

@ruakhは良い答えを出しましたが、完全を期すためにいくつかの代替案を追加します。

実際var Omega = 'Ω'には JavaScript でも使用できますが、JavaScript コードが次の場合に限ります。

  • onclick="var Omega = '&#937'; alert(Omega)"またはのように、イベント属性内
  • scriptXML コンテンツ タイプで提供される XHTML (または XHTML + XML) ドキュメント内の要素。

このような場合、コードは最初に (JavaScript インタープリターに渡される前に) HTML パーサーによって解析され、 のような文字参照Ωが認識されます。この制限により、ほとんどの場合、これは非現実的なアプローチになります。

のように Ω 文字をそのまま入力することもできますがvar Omega = 'Ω'、文字エンコーディングでそれが許可されている必要があり、エンコーディングが適切に宣言されている必要があり、そのような文字を入力できるソフトウェアが必要です。これはクリーンなソリューションであり、すべてに UTF-8 エンコーディングを使用し、それによって生じる問題に対処する準備ができている場合には、非常に実現可能です。ソースコードは読み取り可能であり、それを読み取ると、コード表記ではなく、文字自体がすぐに表示されます。一方で、他の人があなたのコードで作業を開始すると、驚くかもしれません。

\uのように表記法を使用するvar Omega = '\u03A9'と、文字エンコーディングとは無関係に機能し、実際にはほぼ普遍的です。ただし、それ自体は U+FFFF まで、つまり までしか使用できませんが\uffff、ほとんどの人が聞いたことのあるほとんどの文字はその領域に分類されます。(「より高い」文字が必要な場合は、サロゲート ペアまたは上記の 2 つの方法のいずれかを使用する必要があります。)

メソッドを使用して文字を作成しString.fromCharCode()、パラメーターとして Unicode 番号を のように 10 進数で、var Omega = String.fromCharCode(937)または のように 16 進数で渡すこともできますvar Omega = String.fromCharCode(0x3A9)。これは U+FFFF まで機能します。このアプローチは、変数に Unicode 番号がある場合でも使用できます。

于 2012-10-26T21:26:55.540 に答える