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 @   VipSoft  阅读(115)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2022-09-30 Ubuntu 安装 Nginx
2022-09-30 SQL SERVER数据分组后取第一条数据——PARTITION BY
2020-09-30 抓包工具 Fiddler 抓取 exe 包
2019-09-30 Jenkins build 后 tomcat 启不来
点击右上角即可分享
微信分享提示