0

このプロトタイプを使用して、JavaScriptで文字列をフォーマットしています。

String.prototype.format = function () {
            var args = arguments;

            return this.replace(/{(\d+)}/g, function (match, number) {
                return typeof args[number] != 'undefined'
                    ? args[number]
                    : match
                    ;
            });
        };

それはうまく機能しますが、私がやりたいことをすべて行うわけではありません。{0:000000}としてフォーマットされることになっている文字列がある場合、これはそれを修正しません。これを拡張して、文字列に0を追加するにはどうすればよいですか?正規表現を修正することで簡単に検出できますが、リターンを正しくフォーマットするにはどうすればよいですか?

4

1 に答える 1

1

フロートを呼び出すtoFixed( )と、それが役立つ場合はそれに応じて丸め/パッドしますか?

したがって、フロートが未定義でないことを確認するのと同じ方法でフロートを確認できます。あなたがそれを持っているなら、あなたはそうしますargs[number].toFixed(6)

正規表現を拡張してテンプレートを解析し、Pythonと同様に機能させることで、柔軟性をさらに高めることもできます(たとえば、3dpの場合は「{.3f}」)。

于 2012-11-23T13:15:28.090 に答える