関数索引
jstr() 関数は、任意の文字列を JavaScript の文法に沿った文字列に変換します。この関数を使えば、任意の文字列を安全に json などに組み込むことができるようになります。
JavaScript の文字列に変換したい文字列を与えます。
変換方法についてのオプションを指定します。オプションは省略可能です。その場合 "" が指定されたものとなり s d u のいずれも指定されていない動作となります。
指定文字 | 意味 | 備考 |
---|---|---|
s | 結果の文字列全体をシングルクオートで囲みます。 | abc は 'abc' になります。 |
d | 結果の文字列全体をシングルクオートで囲みます。 | abc は "abc" になります。 |
u | 0xff を超える文字を unicode escape します。 | 例えば、文字の値が 0x1234 の場合 \u1234 として結果の文字列に組み込まれます。 |
与えられた文字列中の文字は以下のルールに従って変換されます。
文字コード | 通称 | 変換結果 |
---|---|---|
\x08 | バックスペース | \b |
\x09 | タブ | \t |
\x0a | 改行 | \n |
\x0b | 垂直タブ | \v |
\x0c | 改ページ | \f |
\x0d | 復帰 | \r |
\x22 | " (ダブルクオート) | \" |
\x27 | ' (シングルクオート) | \' |
\x5c | \ (バックスラッシュ) | \\ |
\x00 - \x20 | 上記以外の制御文字 | \xhh (hh は文字コードの 16進表現) |
\xff 以上の文字 | u オプションが on の場合のみ変換対象 \uhhhh (hhhh は文字コードの 16進表現) | |
それ以外の文字 | 無変換でそのまま結果文字列に組み込まれる |
文字列「abcあいうえお"'\xyz」を jstr() 関数で JavaScript の文字列に変換してみます。オプションに d を指定していますので、結果の文字列全体が " (ダブルクオート) で囲まれた状態で生成されます。
<script>
var str = %jstr("abcあいうえお\"'\xyz", "d")% ;
confirm(str) ;
</script>
実行結果は下記の通りとなります。
<script>
var str = "abcあいうえお\"\'\\xyz" ;
confirm(str) ;
</script>
文字列「abcあいうえお"'\xyz」を jstr() 関数で JavaScript の文字列に変換してみます。オプションに s を指定していますので、結果の文字列全体が ' (シングルクオート) で囲まれた状態で生成されます。
<script>
var str = %jstr("abcあいうえお\"'\xyz", "s")% ;
confirm(str) ;
</script
実行結果は下記の通りとなります。
<script>
var str = 'abcあいうえお\"\'\\xyz' ;
confirm(str) ;
</script>
文字列 abcあいうえお"'\xyz を jstr() 関数で JavaScript の文字列に変換してみます。オプションに u を指定していますので、文字列中の日本語部分「あいうえお」の部分が \u エスケープされます。オプションに d も指定していますので、結果の文字列全体が " (ダブルクオート) で囲まれた状態で生成されます。
<script>
var str = %jstr("abcあいうえお\"'\xyz", "ud")% ;
confirm(str) ;
</script>
実行結果は下記の通りとなります。
<script>
var str = "abc\u3042\u3044\u3046\u3048\u304a\"\'\\xyz" ;
confirm(str) ;
</script>