JavaScriptで\x特殊文字と同等の事を\xを使わずに実現する
JavaScriptの文字列中では\x
という特殊文字が利用できます.ドキュメントによると,
\xXX 00 から FF までの 2 桁の 16 進数 XX で指定された、Latin-1 エンコーディングの文字。例えば、\xA9 は著作権記号を示します。
とのことで,まあここに書いてある通りの動作をします.
例:
"\xa9"; // => "©"
ところでこの\x
は文字列連結等では利用できない,つまり
"\x" + "a9"; // => ERROR!
という風には使えないわけです.そりゃそうだ.
どっこい変数の中身を\x
に適用したい時などに困るわけですね.
そういう時は以下のようにすることで代用が可能です.
var charCode = "0x" + "a9"; // <= これは文字列 String.fromCharCode(parseInt(charCode, 16));
0x
から始まる16進数の文字コードを表す文字列をparseInt()
に与えて10進数の文字コード数値に変換し,更にそれをString.fromCharCode()
に食わせる事で,所望の文字を得ることが出来るという感じです.
[追記] parseInt()
の基底を16
にしておけば"0x"をプレフィックスで付ける必要は無かった.
var charCode = "a9"; // <= これは文字列 String.fromCharCode(parseInt(charCode, 16));
16進数の文字コードを表す文字列 ("00"〜"ff") を基底16進のparseInt()
に与えて10進数の文字コード数値に変換し,更にそれをString.fromCharCode()
に食わせる事で,所望の文字を得ることが出来るという感じです.
無駄に詰まったのでここに記す.