用于JavaScript的sprintf(),其行为类似于Python的格式(%)?

时间:2011-04-15 09:46:55

标签: javascript jquery printf

我需要printf / sprintf的JavaScript函数(或jQuery插件)。它需要支持命名参数("%(foo)s")和填充("%02d"),以下格式字符串应该有效:

"%(amount)s.%(subunits)02d"

它只需支持sd,我不关心所有其他格式字符串(例如fx等)。我不需要填充字符串/ s,只需要d,我只需要d的简单填充,例如%2d%3d%04d

3 个答案:

答案 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>