Javascript实现C#的String.Format
String.prototype.format = function (args) { var formatted = this; if (arguments.length > 0) { if (arguments.length == 1 && typeof args == "object") { for (var key in args) { if (args[key] != undefined) { var reg = new RegExp("({" + key + "})", "g"); formatted = formatted.replace(reg, args[key]); } } } else { for (var i = 0; i < arguments.length; i++) { if (arguments[i] != undefined) { var reg = new RegExp("({)" + i + "(})", "g"); formatted = formatted.replace(reg, arguments[i]); } } } } return formatted; } 复制代码 "我是{0},性别{1}".format("张三","男") // 我是张三,性别男 "我是{name},性别{sex}".format({name:"李四",sex:"女"}) // 我是李四,性别女
在.net c#中有非常简单易用的string.Format 静态函数可以做到: string.Format("http://wcf.open.cnblogs.com/blog/sitehome/paged/{0}/{1}", pageIndex, pageSize); 因为string.format这个功能用到的地方比较多, 所以就用js实现了一个简单的版本 : 复制代码 String.format = function () { var formatStr = arguments[0]; if ( typeof formatStr === 'string' ) { var pattern, length = arguments.length; for ( var i = 1; i < length; i++ ) { pattern = new RegExp( '\\{' + ( i - 1 ) + '\\}', 'g' ); formatStr = formatStr.replace( pattern, arguments[i] ); } } else { formatStr = ''; } return formatStr; }; 复制代码 以上代码给javascript String类加了一个静态方法 format, 然后其用法就和c#的 string.format一模一样了, 测试如下: String.format('http://wcf.open.cnblogs.com/blog/sitehome/paged/{0}/{1}',1,20) 输出: "http://wcf.open.cnblogs.com/blog/sitehome/paged/1/20" String.format('{0}+{0}+{1}={2}',1,2,1+1+2) 输出: "1+1+2=4" String.format({name:'leonwang'},'hello,world') 输出: "" 如果第一个参数不是string类型, 就简单返回空string, 不做进一步处理。
分类:
Javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?