js
模拟C #字符串
格式化操作 /
**
函数:字符串格式化
替换操作
***
(string.prototype.format =
功能){
var args =
参数;
返回this.replace( / {( D +) } /克,
函数(m,i){
返回参数{我};
});
}
js实现一个字符串
处理函数的形式()C #:
熟悉C #应该知道有一种
方法的格式(),和下面的会被模仿,这个功能也用Javascript实现。
代码示例如下所示:
字符串。原型。格式=功能(args){
如果(参数,长度> 0){
var结果;
如果(参数。长度= = 1typeof(args)=对象){
对于(在参数VAR键){
VaR reg = new RegExp(({+键+})
结果:result.replace(REG,args {key});
}
}
别的{
对于(var i = 0;i < arguments.length;i++){
如果(参数{ =未定义的){
返回;
}
别的{
VaR reg = new RegExp(({ {+我+} })
结果:result.replace(REG,论点{我});
}
}
}
返回结果;
}
别的{
返回此;
}
}
无功fiststr ={ 0 }欢迎您的光临,希望每个人都能得到你想要的{ 1 }。
无功secondstr ={ webname }欢迎您的光临,希望每个人都能得到你想要的{爱}。
无功出= fiststr.format(
无功secondout = secondstr.format({ webname:
console.log(出);
console.log(secondout);
以上代码是为了达到我们想要的效果,下面是实现过程:
1。实现原则:
这个原理比较简单,可以
参考这里的代码,长话短说,具体注释。使用正则表达式找出要替换的字符串,然后用指定的内容替换这些字符串。在代码中,指定的内容直接由字符串来度量,而另一些则是对象的
属性值。
两。代码注释:
1。字符串。原型。格式=功能(args){ { }),通过添加原型对象的实例方法格式的字符串对象,这个方法用来处理字符串。
2.if(参数。长> 0),如果传递的参数个数大于0。
3.var结果=本,将这个变量结果的参考。
4.if(参数。长度= = 1typeof(args)= =对象),以确定是否传递参数是直接宾语。
5.for(args中无功的关键),遍历属性在对象直接量。
6.var reg = new RegExp({+键+}),G),用于匹配指定的字符串。
7。结果= result.replace(REG,args {key}),与属性值替换字符串匹配。
8,如果转移不是对象的直接量,则{ }。
9.for(var i = 0;i < arguments.length;i++),遍历传递参数。
10.if(参数= =不确定),如果是未定义,返回一个空字符串。
11.var reg = new RegExp(({ {+我+} })
12。结果= result.replace(
注册、参数),取代。
13.return结果,返回的字符串替换。
14.return这,如果没有参数传递,返回的是字符串本身。