JS实现String.Format

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\">&#xe6dd;</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>
posted @ 2024-09-30 10:05  VipSoft  阅读(41)  评论(0编辑  收藏  举报