javascript模拟C#格式化字符串
JS 模拟C# 字符串格式化操作 js实现类似c#中的字符串处理函数format(): 熟悉c#的应该知道有format()这么一个方法,下面就来模仿一下,在javascript中也实现此功能。 代码实例如下: 0){
var result=this;
if(arguments.length==1&&typeof(args)=="object"){
for(var key in args){
var reg=new RegExp("({"+key+"})","g");
result=result.replace(reg,args[key]);
}
}
else{
for(var i=0;i
以上代码是实现了我们想要的效果,下面介绍一下它的实现过程: 一.实现原理:原理比较简单,这里长话短说,具体可以参阅代码注释。使用正则表达式找出要被替换的字符串,然后使用指定的内容替换这些字符串即可,在代码中,指定的内容有的是字符串直接量,有的则是对象的属性值。 二.代码注释:1.String.prototype.format=function(args){{}),通过原型对象为String对象添加实例方法format,此方法就是用来处理字符串。 2.if(arguments.length>0),如果传递参数的个数大于0。 3.var result=this,将this的引用赋值给变量result。 4.if(arguments.length==1&&typeof(args)=="object"),用来判断传递的参数是否是一个对象直接量。 5.for(var key in args),遍历对象直接量中的属性。 6.var reg=new RegExp("({"+key+"})","g"),用来匹配指定的字符串。 7.result=result.replace(reg,args[key]),用属性值替换匹配的字符串。 8.else{},如果传递的不是一个对象直接量。 9.for(var i=0;i 10.if(arguments==undefined),如果为undefined,就返回空字符串。 11.var reg=new RegExp("({["+i+"]})","g"),用来匹配指定的字符串。 12.result=result.replace(reg,arguments),进行替换。 13.return result,返回替换后的字符串。 14.return this,如果没有传递参数,则返回字符串本身。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |