【问题标题】:sprintf() for JavaScript that behaves like Python's format (%)? [duplicate]sprintf() 用于表现类似于 Python 格式 (%) 的 JavaScript? [复制]
【发布时间】:2011-08-06 05:01:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript jquery printf


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

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

      另外,dive.into.javascript() 有 a page 大约 sprintf()

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2013-05-12
          • 2013-05-08
          • 1970-01-01
          • 2012-07-29
          • 1970-01-01
          • 2018-08-01
          • 1970-01-01
          • 2010-11-07
          相关资源
          最近更新 更多