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新闻滚动插件 jquery.roller.js
Jun 27 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
js获取当前日期前七天的方法
Feb 28 Javascript
jQuery结合CSS制作动态的下拉菜单
Oct 27 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
JS触摸与手势事件详解
May 09 Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 Javascript
VUE 配置vue-devtools调试工具及安装方法
Sep 30 Javascript
JS数组方法concat()用法实例分析
Jan 18 Javascript
es6函数name属性功能与用法实例分析
Apr 18 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
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
火车头采集器3.0采集图文教程
2007/03/17 PHP
php操作excel文件 基于phpexcel
2010/07/02 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
学习PHP session的传递方式
2016/06/15 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
使用JS动态显示文本
2017/09/09 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
Python 2与Python 3版本和编码的对比
2017/02/14 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
django基础学习之send_mail功能
2019/08/07 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
毕业自荐书
2013/12/09 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
python flappy bird小游戏分步实现流程
2022/02/15 Python
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
python通过新建环境安装tfx的问题
2022/05/20 Python