JavaScript: 如何使用 format 格式化字符串
在 Java 等编程语言中有 String.format 方法用来组装字符串,非常方便。
而 JavaScript 中好像只能是通过加号组装:
var s = "Hello " + " World"
有类似 String.format 的函数吗?有,但要自己实现。
方式1:使用ES6
在最新的 Chrome 等浏览器中已经支持 ES6 了。
var name = 'letian' var s = `Hello ${name}` console.log(s)
方法2:在 String 原型中增加 format 函数
String.prototype.format = function() { var formatted = this; for( var arg in arguments ) { formatted = formatted.replace("{" + arg + "}", arguments[arg]); } return formatted; }; var s = '你好 {0} {1}'.formar('value1', 123) console.log(s)
运行结果:
你好 value1 123
但是上面这个实现有 bug
,比如 '{0} {1}'.format('{1}', '{0}')
的结果是 {0} {1}
,这个和预期的 {1} {0}
不一致。
修复如下:
if (!String.prototype.format) { String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] != 'undefined' ? args[number] : match ; }); }; }
如果不想在字符串后面加.format
,可以用 String.format 方法,那么可以用下面的实现:
if (!String.format) { String.format = function(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] != 'undefined' ? args[number] : match ; }); }; }
使用示例: String.format('{0}', 'Hello')。
方法3: sprintf.js 库
见 https://github.com/alexei/sprintf.js 。
参考
原文:https://www.letianbiji.com/web-front-end/js-string-format.html
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人