javascript模拟实现C# String.format函数功能代码


Posted in Javascript onNovember 25, 2013

C# 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.a.com/blog/sitehome/paged/{0}/{1}',1,20)
输出: "http://wcf.open.a.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 相关文章推荐
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 Javascript
jquery checkbox,radio是否选中的判断代码
Mar 20 Javascript
基于jquery的一个浮动框(扩展性比较好 )
Aug 27 Javascript
潜说js对象和数组
May 25 Javascript
javascript垃圾收集机制与内存泄漏详细解析
Nov 11 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
Jun 18 Javascript
Vue中util的工具函数实例详解
Jul 08 Javascript
微信小程序音乐播放器开发
Nov 20 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
Oct 31 Javascript
js给onclick赋值传参数的两种方法
Nov 25 #Javascript
自己动手实现jQuery Callbacks完整功能代码详解
Nov 25 #Javascript
写JQuery插件的基本知识
Nov 25 #Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
Nov 25 #Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 #Javascript
如何通过javascript操作web控件的自定义属性
Nov 25 #Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
Nov 25 #Javascript
You might like
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
一个javascript图片阅览组件
2010/11/09 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
Python类的动态绑定实现原理
2020/03/21 Python
Python实现汇率转换操作
2020/05/03 Python
原装进口全世界:天猫国际
2016/08/03 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
销售工作人员的自我评价分享
2013/11/10 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers