有没有办法从带有格式说明符的控制台日志访问格式化字符串?
https://console.spec.whatwg.org/#formatter
给出以下日志消息:
console.log('message with %s formatting specifiers %i', 'various', '01');
我希望以后的字符串可用于稍后的应用程序:
message with various formatting specifiers 1
答案 0 :(得分:0)
我为此目的在网站上找到了一个很棒的String.prototype.printf()
功能。它与您想要实现的类似。这是您要添加到javascript页面的整个原型。
String.prototype.printf = function (obj) {
var useArguments = false;
var _arguments = arguments;
var i = -1;
if (typeof _arguments[0] == "string") {
useArguments = true;
}
if (obj instanceof Array || useArguments) {
return this.replace(/\%s/g,
function (a, b) {
i++;
if (useArguments) {
if (typeof _arguments[i] == 'string') {
return _arguments[i];
}
else {
throw new Error("Arguments element is an invalid type");
}
}
return obj[i];
});
}
else {
return this.replace(/{([^{}]*)}/g,
function (a, b) {
var r = obj[b];
return typeof r === 'string' || typeof r === 'number' ? r : a;
});
}
};
包含它之后,这行代码返回Hello I am foo bar
console.log("Hello I am " + "%s %s".printf(["foo", "bar"])); //returns foo bar
有关详细信息,请参阅 here
如果您使用的是Node.JS
如果您正在使用Node.js,则可以要求使用util节点模块,并使用util.format()
函数。请参阅下面的代码。
var util = require('util');
console.log(util.format('Hi %s', 'Jack'));
//returns Hi Jack