代码改变世界

js 格式化字符串

2011-07-20 18:43  ☆冷枫☆  阅读(11899)  评论(0编辑  收藏  举报

      .NET中格式字符串有个String.Format()函数,想格式化一个字符串用起来比较方便,但是我们想在前端交互的时候就可以像这样格式化可不可以呢,当然可以的是吧。不然不可以也不用写这篇文章了:)

 

      是的,我们可以考虑用正则来实现,提到正则大家应该都有思路了吧。哼哼,你的确很聪明。其实实现原理就是利用正则查找匹配js替换

 

      好了,看下代码吧:

    

/** 格式化输入字符串**/
//用法: "hello{0}".format('world');返回'hello world'
     String.prototype.format= function(){
       
var args = arguments;
       
return this.replace(/\{(\d+)\}/g,function(s,i){
         
return args[i];
       });
}


在页面中直接调用方法即可实现格式化了:

 

var str = "hello{0}{1}".format('world','haha');
alert(str);

 运行页面弹出"hello world haha";

 

值得说明的地方是“arguments” 能够自动捕获函数的参数,例arguments[0] 对应"hello",arguments[1] 对应"world".