sprintf-js

中文文档
1.1.3发布于 2023/09/11BSD-3-ClauseCommonJS零依赖近 30 天下载 4.1亿

JavaScript 短跑f 执行

中文使用文档
文档目录18 节
  1. 使用量
  2. 安装
  3. 国家预防机制
  4. 鲍尔
  5. API 密码
  6. sprintf
  7. vsprintf
  8. 格式规格
  9. 特征
  10. 参数交换
  11. 命名参数
  12. 计算值
  13. 角 JS 语言
  14. 支助
  15. 节点.js
  16. 浏览器
  17. 许可证
  18. 页:1

冲刺 -js

Build Status NPM Version Dependency Status devDependency Status

冲刺 -js 是一个完整的开源 JavaScript sprintf 执行《公约》的情况 浏览器 财务报告和审定财务报表 节点.js。 。 。 .

注:截至v1.1.1,您可能需要一些旧环境的多填充. 见 支助 下节.

使用量

var sprintf = require('sprintf-js').sprintf,
    vsprintf = require('sprintf-js').vsprintf

sprintf('%2$s %3$s a %1$s', 'cracker', 'Polly', 'wants')
vsprintf('The first 4 letters of the english alphabet are: %s, %s, %s and %s', ['a', 'b', 'c', 'd'])

安装

国家预防机制

npm install sprintf-js

鲍尔

bower install sprintf

API 密码

sprintf

返回格式化字符串 :

string sprintf(string format, mixed arg1?, mixed arg2?, ...)

vsprintf

与 sprintf 但是它需要一系列的论据,而不是一些可变的论据:

string vsprintf(string format, array arguments?)

格式规格

格式字符串中的占位符由 % 并随后按以下顺序列出其中一个或多个要素:

  • 可选编号后加a $ 标记选择用于该值的参数索引。 如果没有指定,会将参数与输入字符串中的占位符排列在同一顺序.
  • 可选 + 显示在结果前加或减数字符号。 默认情况下,只有 - 符号用于负数上.
  • 一种可选的编目描述符,该描述用于编目的字符(如果指定的话). 可能值为 0 或其他任何字符,在 ' (单引出. 默认值为 空间。 。 。 .
  • 可选 - 标志,原因 sprintf 以左对齐这个占位符的结果。 默认是将结果对齐.
  • 一个可选的号码,说明结果应该有多少个字符. 如果返回的值比这个数字短,则结果会被加成. 当使用时 j (JSON) 类型描述符, 粘贴长度指定缩进所用的标签大小 .
  • 可选精度修饰剂,由 . (dot) 后面是数字, 表示浮动点数应该显示多少位数 。 当使用时 g 键入指定数字。 在字符串上使用时,会导致结果被截断.
  • 类型描述符可以是:
    • % ——产生一字 % 字符
    • b − 作为二进制数生成整数
    • c − 以 ASCII 值为字符生成整数
    • d 或者说 i − 以已签名的小数表示整数
    • e 使用科学标记生成浮标
    • u − 以无符号小数生成整数
    • f − 按原样产生浮标;见上文关于精确度的说明
    • g − 按原样产生浮标;见上文关于精确度的说明
    • o − 以八进制数表示整数
    • s - 产生一个字符串
    • t ——产量 true 或者说 false
    • T - 得出论证的类型1个
    • v − 得出指定参数的原始值
    • x − 以十六进制数( 小写) 得出整数
    • X − 以十六进制数( 上) 得出整数
    • j - 将 JavaScript 对象或阵列生成为 JSON 编码字符串

特征

参数交换

也可以交换参数。 也就是说,占位者的顺序不必与争论的顺序相匹配. 您可以简单地在格式字符串中注明占位符所指的参数:

sprintf('%2$s %3$s a %1$s', 'cracker', 'Polly', 'wants')

当然,你可以重复占位符,而不必增加参数的数量.

命名参数

格式字符串可能包含替换字段而不是位置占位符. 现在可以指某物体内的某一个密钥,而不是指某一个参数. 替换字段被圆括号所包围 - ( 财务报告和审定财务报表 ) - 然后从一个关键字开始,该关键字指的是一个密钥:

var user = {
    name: 'Dolly',
}
sprintf('Hello %(name)s', user) // Hello Dolly

替换字段中的关键字可选择后面插入任何关键字或索引:

var users = [
    {name: 'Dolly'},
    {name: 'Molly'},
    {name: 'Polly'},
]
sprintf('Hello %(users[0].name)s, %(users[1].name)s and %(users[2].name)s', {users: users}) // Hello Dolly, Molly and Polly

注:不支持(尚未)混合位置和命名占位符

计算值

您可以在一个函数中作为动态值传递, 它会被引用( 没有参数) 以计算在苍蝇上的值 .

sprintf('Current date and time: %s', function() { return new Date().toString() })

角 JS 语言

你用得着 sprintf 财务报告和审定财务报表 vsprintf (又作: fmt 财务报告和审定财务报表 vfmt 在您的 AngularJS 项目中。 见 demo/。 。 。 .

支助

节点.js

sprintf-js 运行在所有活动节点版本(4.x+).

浏览器

sprintf-js 应当在所有现代浏览器中工作。 从v1.1.1起,您可能需要下列多填充:

  • String.prototype.repeat() (任何IE) (英语)
  • Array.isArray() (环境倡议 < 9)
  • Object.create() (环境倡议 < 9)

也门

许可证

冲刺 -js 根据BSD 3-Clause许可证的规定获得许可证.

页:1

1个 sprintf 不使用 typeof 操作员。 因此,价值 null 是一个 null,一个数组是 array (无) object),日期值为 date 包括:.

版本与发布记录

sprintf-js 共发布 8 个版本,首次发布于 2013/04/03;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.3latest2023/09/113 年前
1.1.22018/12/097 年前
1.1.12017/05/309 年前
1.1.02017/05/069 年前
1.0.32015/07/1011 年前
1.0.22014/10/2512 年前

关于 sprintf-js 的常见问题

sprintf-js 是什么?

JavaScript 短跑f 执行

如何安装 sprintf-js?

在项目目录运行 npm install sprintf-js,或使用 pnpm add / yarn add / bun add。

sprintf-js 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/sprintf-js 是否存在。

sprintf-js 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

sprintf-js 可以商用吗?

sprintf-js 使用 BSD-3-Clause 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括,不构成法律意见,请以许可原文为准。

sprintf-js 的下载量有多少?

根据 npm 官方下载统计,sprintf-js 在 2026/10/05 – 2026/11/03 这 30 天内被下载 413,808,673 次,日均约 13,793,622 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

sprintf-js 还在维护吗?

最新版本 1.1.3 发布于 2023/09/11(3 年前);至今共发布 8 个版本,其中过去 12 个月发布了 0 个;首次发布于 2013/04/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。