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

发布于 2024-11-01 17:22:01 字数 460 浏览 1 评论 0原文

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

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

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

I need a JavaScript function (or jQuery plugin) for printf/sprintf. It needs to support named arguments ("%(foo)s") and padding ("%02d"), i.e. the following format string should work:

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

It only needs to support s and d, I don't care about all the other format strings (e.g. f, x, etc.). I don't need padding for strings/s, just d, I only need simple padding for d, e.g. %2d, %3d, %04d, etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花心好男孩 2024-11-08 17:22:01

上一个问题“Javascript printf/string.format”有一些很好的信息。

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

A previous question "Javascript printf/string.format" has some good information.

Also, dive.into.javascript() has a page about sprintf().

指尖微凉心微凉 2024-11-08 17:22:01

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

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

The PHPJS project has implemented a lot of PHP's functionality in Javascript. I can't imagine why they'd want to do that, but the fact remains that they have produced a sprintf() implementation which should satisfy your needs (or at least come close).

Code for it can be found here: http://phpjs.org/functions/sprintf

寄与心 2024-11-08 17:22:01

这里有一个函数

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>

Here one function

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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文