JS自定義字符串格式化函數
阿新 • • 發佈:2019-03-31
定義 proto nihao bubuko -s 參數 cti 沒有 inf
python的字符串格式化
test = ‘name: {name} age: {age}‘
print(test.format(name=‘zq‘,age=22))
輸出: name: zq age: 22
JS裏沒有這種方式,但可以自定義一個類似的方法
<script>
//自定義字符處理函數---- 字符串替換格式化
String.prototype.format = function (kwargs) {
console.log(this) // this表示調用這個函數的字符串對象 String {"nihao:{name}-{age}"}
// 正則表達式是在/ /內表示, 正則後的g表示去this裏面匹配所有的字符(執行全局匹配(查找所有匹配而非在找到第一個匹配後停止)) i表示執行對大小寫不敏感的匹配 m表示執行多行匹配
var ret = this.replace(/\{(\w+)\}/g,function (k,m) { //k表示匹配到的字符串,m表示匹配到的分組裏的值,在正則中用()表示一個分組
console.log(k,m); //{name} name
return kwargs[m] // 把匹配到的字符串用參數的值替換
});
return ret; //把替換完的字符串返回
};
text = "nihao:{name}-{age}";
result = text.format({‘name‘:‘zq‘,‘age‘:21});
console.log(result); // nihao:zq-21
</script>
JS自定義字符串格式化函數