时间:2021-05-26
JS 模拟C# 字符串格式化操作
/***** 功能: 字符串格式化替换操作***/String.prototype.format = function () { var args = arguments; return this.replace(/\{(\d+)\}/g, function (m, i) { return args[i]; });}js实现类似c#中的字符串处理函数format():
熟悉c#的应该知道有format()这么一个方法,下面就来模仿一下,在javascript中也实现此功能。
代码实例如下:
String.prototype.format=function(args){ if(arguments.length>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<arguments.length;i++){ if(arguments[i]==undefined){ return ""; } else{ var reg=new RegExp ("({["+i+"]})","g"); result = result.replace(reg, arguments[i]); } } } return result; } else{ return this; } }var fistStr="{0}欢迎您,希望大家能够得到想要的{1}";var secondStr="{webName}欢迎您,希望大家能够得到想要的{favoriate}";var firstOut=fistStr.format("","东西");var secondOut=secondStr.format({webName:"",favoriate:"东西"});console.log(firstOut);console.log(secondOut);以上代码是实现了我们想要的效果,下面介绍一下它的实现过程:
一.实现原理:
原理比较简单,这里长话短说,具体可以参阅代码注释。使用正则表达式找出要被替换的字符串,然后使用指定的内容替换这些字符串即可,在代码中,指定的内容有的是字符串直接量,有的则是对象的属性值。
二.代码注释:
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<arguments.length;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,如果没有传递参数,则返回字符串本身。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#格式化json字符串的方法。分享给大家供大家参考,具体如下:将Json字符串转化成格式化表示的方法:字符串反序列化为对象-->对象再序列化为字
在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作%。模板格式化字符串时,P
两种格式化字符串方法众所周知,C++的std::string功能残缺,各种功能都没有,比如格式化字符串功能。在python3中,支持两种格式化字符串的方法,一种
全面兼容的javascript时间格式化函数,实用总结!复制代码代码如下:js日期格式化/**时间格式化*strDateTime:需要格式化的字符串时间*int
本文实例讲述了C#适用于like语句的SQL格式化函数,分享给大家供大家参考。具体实现代码如下:复制代码代码如下://////对字符串进行sql格式化,并且符合