Pot.js で利用可能。 PotLite.js では利用できません。
フォーマットされた文字列を返します。
フォーマット文字列 format に基づき生成された文字列を返します。
フォーマット文字列は 0 個以上のディレクティブ (指示子) により構成されます。
ディレクティブには、そのまま結果にコピーされる (% を除く) 通常の文字と
変換指定子 (conversion specifications) があり、取り出される際は
どちらもそれ自身がパラメータとなります。
各変換指定子は、パーセント記号 (%) の後に、以下の要素が一つ以上続いたものになります。
Pot.globalize() が適応されている場合、Pot.sprintf() が sprintf() で実行できます。
フォーマットされた文字列が返ります。
var num = 5; var place = 'tree'; var result = sprintf('There are %d monkeys in the %s.', num, place); debug(result); // 'There are 5 monkeys in the tree.'
var n = 43951789; var u = -43951789; var c = 65; // ASCII コードの 65 は 'A' です // %% は、リテラル '%' を文字として出力します debug(sprintf("%%b = '%b'", n)); // 2 進表現 debug(sprintf("%%c = '%c'", c)); // 文字 (Unicode) を表示します debug(sprintf("%%d = '%d'", n)); // 標準の整数表現 debug(sprintf("%%e = '%e'", n)); // 科学記法 debug(sprintf("%%u = '%u'", n)); // 正の整数の、符号なし整数表現 debug(sprintf("%%u = '%u'", u)); // 負の整数の、符号なし整数表現 debug(sprintf("%%f = '%f'", n)); // 浮動小数点表現 debug(sprintf("%%o = '%o'", n)); // 8 進表現 debug(sprintf("%%s = '%s'", n)); // 文字列表現 debug(sprintf("%%x = '%x'", n)); // 16 進表現 (小文字) debug(sprintf("%%X = '%X'", n)); // 16 進表現 (大文字) debug(sprintf("%%+d = '%+d'", n)); // 正の整数に符号指定子を使用 debug(sprintf("%%+d = '%+d'", u)); // 負の整数に符号指定子を使用 debug(sprintf("%%a = '%a'", n)); // 36 進表現 (小文字) debug(sprintf("%%A = '%A'", n)); // 36 進表現 (大文字) // // 以下の結果になります // // %b = '10100111101010011010101101' // %c = 'A' // %d = '43951789' // %e = '4.395179e+7' // %u = '43951789' // %u = '4251015507' // %f = '43951789.000000' // %o = '247523255' // %s = '43951789' // %x = '29ea6ad' // %X = '29EA6AD' // %+d = '+43951789' // %+d = '-43951789' // %a = 'q61f1' // %A = 'Q61F1' //
var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var isoDate = Pot.sprintf('%04d-%02d-%02d', year, month, day); debug(isoDate); // e.g. '2011-09-01'
var s = 'monkey'; var t = 'many monkeys'; debug(sprintf("[%s]", s)); // 標準の文字列出力 debug(sprintf("[%10s]", s)); // 空白を使用して右詰め debug(sprintf("[%-10s]", s)); // 空白を使用して左詰め debug(sprintf("[%010s]", s)); // ゼロ埋めは文字列でも可能です debug(sprintf("[%'#10s]", s)); // ゼロの代わりに独自の文字 '#' で埋めます debug(sprintf("[%10.10s]", t)); // 左詰めを行い、10 文字以上は切り捨てます // // 以下の結果になります // // [monkey] // [ monkey] // [monkey ] // [0000monkey] // [####monkey] // [many monke] //
Pot.debug(Pot.sprintf('%n', 1234567890)); // 1,234,567,890 Pot.debug(Pot.sprintf('%n', 12345678.9)); // 12,345,678.9 Pot.debug(Pot.sprintf('%n', 123)); // 123