js 的 format 方法实现

js 自身并没有字符串格式匹配功能,但是我们可以基于 replace 方法实现一个 format 方法。

1
2
3
4
5
6
7
8
9
10
11
12
// 字符串格式化函数
String.prototype.format = function () {
// 数据长度为空,则直接返回
if (arguments.length == 0){
return this;
}
// 使用正则表达式,循环替换占位符数据
for (var result = this, i = 0; i < arguments.length; i++){
result = result.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
}
return result;
};

然后我们就可以使用它:

1
2
3
4
let str = "my name is {0}, my age is {1}".format('silence', '23');
console.log(str);

// 输出:my name is silence, my age is 23