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 的功能来构建额外的灵活性(例如 3 dp 的“{.3f}”)

于 2012-11-23T13:15:28.090 回答