我需要printf
/ sprintf
的JavaScript函数(或jQuery插件)。它需要支持命名参数("%(foo)s"
)和填充("%02d"
),即以下格式字符串应该有效:
"%(amount)s.%(subunits)02d"
它只需支持s
和d
,我不关心所有其他格式字符串(例如f
,x
等)。我不需要填充字符串/ s
,只需要d
,我只需要d
的简单填充,例如%2d
,%3d
,%04d
等
答案 0 :(得分:4)
上一个问题“Javascript printf/string.format”有一些很好的信息。
此外,dive.into.javascript()的a page约为sprintf()
。
答案 1 :(得分:2)
PHPJS项目在Javascript中实现了许多PHP的功能。我无法想象为什么他们想要这样做,但事实仍然是他们已经制定了一个sprintf()
实现,它应该满足你的需求(或至少接近)。
可以在此处找到代码:http://phpjs.org/functions/sprintf
答案 2 :(得分:1)
这里有一个功能
var sprintf = function(str) {
var args = arguments,
flag = true,
i = 1;
str = str.replace(/%s/g, function() {
var arg = args[i++];
if (typeof arg === 'undefined') {
flag = false;
return '';
}
return arg;
});
return flag ? str : '';
};
$(document).ready(function() {
var msg = 'the department';
$('#txt').html(sprintf('<span>Teamwork in </span> <strong>%s</strong>', msg));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<center id="txt"></center>