我非常怀念 ruby on rails 上的一个简单功能:字符串关键字参数,如下所示:
"the key '%{key}' has a value of '%{value}'" % {:key => 'abc', :value => 5}
在 javascript 中,您必须对许多字符串求和,从而使代码难看且难以编写。
有没有一个好的图书馆?我对 sprintf 之类的东西不感兴趣。
我非常怀念 ruby on rails 上的一个简单功能:字符串关键字参数,如下所示:
"the key '%{key}' has a value of '%{value}'" % {:key => 'abc', :value => 5}
在 javascript 中,您必须对许多字符串求和,从而使代码难看且难以编写。
有没有一个好的图书馆?我对 sprintf 之类的东西不感兴趣。
String.prototype.format = function(obj) {
return this.replace(/%\{([^}]+)\}/g,function(_,k){ return obj[k] });
};
"the key '%{key}' has a value of '%{value}'".format({ key:'abc', value:5 });
您可以制作一个基本的数组类型格式化程序:
String.prototype.format = function(args) {
var str = this,
idxRx = new RegExp("{[0-9]+}", "g");
return str.replace(idxRx, function(item) {
var val = item.substring(1, item.length - 1),
intVal = parseInt(val, 10),
replace;
replace = args[intVal];
return replace;
});
};
用法:
'{1} {0} and {2}!'.format(["collaborate", "Stop", "listen"])
// => 'Stop collaborate and listen!'