JavaScript自定义字符串格式化

在JS中没有字符串拼接的方法,如过要使用怎么办呢?这时我们可以通过字符串的prototype可以自定义方法。

<script>

        String.prototype.format = function (kwargs) {
           // this = "ray: {age} - {gender}"
           // kwargs = {'age':18,'gender': '男'}
           var ret = this.replace(/{(w+)}/g,function (k,v) {
               return kwargs[v];
           });
            return ret
        };

        var v = "ray: {age} - {gender}";
        var result = v.format({'age':18,'gender': '男'});
        console.log(result);

</script>

刚开始对replace中的函数有点不解,然后查了一下:

replace()方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。其实该函数有四个参数。第一个参数是匹配模式的字符串。第二个参数是与正则表达式匹配的字符串,第三个参数是要替换的文本。第四个参数是 stringObject 本身,也就是这里的 v。

原文地址:https://www.cnblogs.com/ray-h/p/10302222.html