Stringformat PlaceHolder with Split for delimited string

时间:2014-06-28 20:32:42

标签: javascript string

使用js函数 JavaScript equivalent to printf/string.format

if (!String.prototype.format) {
    String.prototype.format = function () {
        var args = arguments;
        return this.replace(/{(\d+)}/g, function (match, number) {
            return typeof args[number] != 'undefined'
              ? args[number]
              : match
            ;
        });
    };
}

尝试将分隔字段作为参数传递给此函数参数。使用split创建数组并将其作为参数传递但似乎不起作用

    var str =" this is a {0} test in {1}";
 var args = "StringFormat|Javascript";
 var return = str.format(args.split("|"));
  

actual:这是{1}中的StringFormat | Javascript测试

     

预期:这是Javascript中的StringFormat测试

1 个答案:

答案 0 :(得分:1)

这是因为.format()没有查找字符串数组,只是一个字符串。因此,根据Paolo的建议,您应该如何调用.format()动态数组:

var str =" this is a {0} test in {1}";
var args = "StringFormat|Javascript".split("|");
var return = str.format.apply(str, args);