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 相关文章推荐
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
使用js的replace()方法查找字符示例代码
Oct 28 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
javascript 动态创建表格的2种方法总结
Mar 04 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
Dec 18 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
React Router V4使用指南(精讲)
Sep 17 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
Jul 03 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 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
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
深入理解node.js http模块
2018/01/24 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
vuex入门最详细整理
2020/03/04 Javascript
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
学python需要去培训机构吗
2020/07/01 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
品学兼优的大学生自我评价
2013/09/20 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
难忘的一课教学反思
2014/04/30 职场文书
学生鉴定评语大全
2014/05/05 职场文书
体现团队精神的口号
2014/06/06 职场文书
敬老院活动感想
2015/08/07 职场文书
sass 常用备忘案例详解
2021/09/15 HTML / CSS
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers