前端自定义format函数,做字符串格式化功能

<!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 - 男

原文地址:https://www.cnblogs.com/xixi18/p/10682718.html