<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>自定义format函数,做字符串格式化功能</title> </head> <body> <script> String.prototype.format = function (kwargs) { //自定义定义format方法,这样字符串就多了一个自定义format方法kwargs接收字符串传来的字典 //this就是当前调用这个方法的对象xixi。this= "xixi: {age} - {gender}" // kwargs={'age':18,'gender': '男'} var ret = this.replace(/\{(\w+)\}/g,function (km,m) { //replace通过正则匹配this里面以{}里面的都替换,km是匹配成功的值{age}和{gender},m是在km基础上把里面的分组提取到是age和gender,ret就是最后被返回的值 return kwargs[m]; //拿到18和男 }); return ret; //如果在这个函数有return的话匹配的位置就会被替换什么 }; //需要格式化的函数 var v = "xixi: {age} - {gender}"; //v=xixi: {age} - {gender}要把{age} - {gender}格式化到{'age':18,'gender': '男'}的指定位置 var result = v.format({'age':18,'gender': '男'}); //v.执行自定义format方法传一个字典{'age':18,'gender': '男'}进去,result就是格式化完成之后的值 console.log(result); //xixi: 18 - 男 </script> </body> </html>
格式化后:
xixi: 18 - 男