sprintf()用于JavaScript,其行为类似于python的's format(%)

sprintf() for JavaScript that behaves like Python's format (%)?

本文关键字:format python JavaScript 用于 sprintf 类似于      更新时间:2023-09-26

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

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

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

上一个问题"Javascript printf/string。格式"有一些很好的信息。

另外,dive.into.javascript()有一个关于sprintf()的页面。

PHPJS项目已经用Javascript实现了很多PHP的功能。我无法想象他们为什么要这样做,但事实仍然是,他们已经产生了一个sprintf()实现,应该满足你的需求(或至少接近)。

代码可以在这里找到:http://phpjs.org/functions/sprintf

这里有一个函数

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>