js 实现 string.format 功能
<script type="text/javascript">
var errorHtml = "<a title=\"{1}\" href=\"#\" onclick=\"\" class=\"ml-5\" style=\"text-decoration: none; color: #FF3C3C\"><i class=\"Hui-iconfont\"></i> {0}</a>";
$(function () {
$("#spanHisApiStatus").html(errorHtml.Format("运行异常","点击重试"));
});
// 将 Format 方法添加到字符串的原型上, 让所有的字符串都能调用这个方法
String.prototype.Format = function(...arg){
let str = this; // this的值是当前调用Format 方法的字符串内容
const regArr = str.match(/{\d+}/g); // 正则获取到字符串里面的占位符
// 将得到的占位符数组进行排序 从低到高
regArr.sort((a, b) => {
// {0} => 0 匹配占位符的数字
const regA = a.match(/\d+/g)[0];
const regB = b.match(/\d+/g)[0];
return regA - regB;
});
// 遍历得到的占位符数组,并将字符串中 对应的占位符给替换掉
regArr.map((row)=>{
const regIndex = row.match(/\d+/g)[0];
arg[regIndex] &&( str = str.replaceAll(row, arg[regIndex]));
})
// 将格式化之后的内容返回
return str;
};
</script>
标签:const,String,Format,占位,str,字符串,JS,match
From: https://www.cnblogs.com/vipsoft/p/18441270