在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。