JavaScript 中是否有 sprintf 等价物?

Daw*_*hia 3 javascript

如果是,那是什么?

我不介意它是否涉及使用外部库。

red*_*exp 7

这是我可以处理的超级简单的解决方案%s%d并且%04d(更改4任何数字)

function sprintf(str) {
    var args = arguments, i = 1;

    return str.replace(/%(s|d|0\d+d)/g, function (x, type) {
        var value = args[i++];
        switch (type) {
        case 's': return value;
        case 'd': return parseInt(value, 10);
        default:
            value = String(parseInt(value, 10));
            var n = Number(type.slice(1, -1));
            return '0'.repeat(n).slice(value.length) + value;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)