郭某人的网站

关于 / 留言

WEB 前端技术分享,Javascript 格式化字符串占位 {0} {1} ...

js 模拟实现 c#.net 中的 string.Format 方法


到目前 Javascript 进行字符串拼接只能以基本方法进行,而在我所用的后端 .NET Framework 中提供了许多种对字符串的简便操作方法,下面这个用于 Javascript 的方法类似于 .NET C# 中的 string.Format 方法,可以格式化字符串的数字占位符:

//以指定的对象格式化某字符串的占位序号 [ {0}, {1}, ... ]
function StringFormat(_str, _arg0, _arg1) {
    if (arguments.length > 1) {
        for (var i = 0; i < arguments.length - 1; i++) {
            var reg = new RegExp("\\{" + i + "\\}", "g");
            _str = _str.replace(reg, "##_" + i + "_##");
        }
        for (var i = 0; i < arguments.length - 1; i++) {
            var reg = new RegExp("##_" + i + "_##", "g");
            _str = _str.replace(reg, arguments[i + 1]);
        }
    }
    return _str;
}

 

比如 StringFormat("Hello, {0}. My Name is {1}.","John","Henry") 这种用法,当然参数不固定,可以允许有更多的或更少的占位符,程序的实现方式是以代换的方法进行,用到了正则表达式进行替换,使用的时候需要注意代换用的标识符,在这个程序中,如果字符串当中有 “ ##_1_## ” 这一类的符号,那么当然会得到意料之外的结果。


最后更新时间:2023/02/17 17:47

你一赞赏,我就写得更来劲儿了

注意!你的赞赏转账请考虑再三后支付,此收款不作任何形式的退款。