javascript中没有大部分语言中都有的string.format
方法,但是通过引入第三方库就可以支持了,比如sprintf-js。
其用法如下
用法一
类似Go里面的fmt.sprintf
用法。
这也是类似c/c++这样的语言里的用法,用%d
表示数字,%s
表示字符串:
比如Go代码
s := fmt.sprintf("数字:%d 字符串:%s", 123, "javascript")
同样功能的javascript代码为
const s = vsprintf('数字:%d 字符串:%s', [123, 'javascript']);
输出都为
数字:123 字符串:javascript
用法二
类似C#里面的string.format
用法:
C#的用法比较特别,其用{0}
表示传入的第一个参数,依次类推。但是比较灵活,因为同样的占位符。比如{0}
可以出现多次,也能以任意顺序出现。
比如C#代码
var s = string.Format("字符串在前{1} 字符串再出现一次{1} 数字{0}", 123, "javascript");
同样功能的javascript代码为:
不一样的是,这里索引从1开始。
const s = sprintf('字符串在前%2$s 字符串再出现一次%2$s 数字%1$d', 123, 'javascript');
输出都为
字符串在前javascript 字符串再出现一次javascript 数字123