s = 'hello %s, how are you doing' % (my_name)
在python中就是这么做的。如何在javascript/node.js中做到这一点?
s = 'hello %s, how are you doing' % (my_name)
在python中就是这么做的。如何在javascript/node.js中做到这一点?
当前回答
如果使用node.js, console.log()将format string作为第一个参数:
console.log('count: %d', count);
其他回答
试试JS中的sprintf 或者你可以用这个要点
跑龙套。格式可以做到这一点。
它将是v0.5.3的一部分,可以像这样使用:
var uri = util.format('http%s://%s%s',
(useSSL?'s':''), apiBase, path||'/');
扩展String的几种方法。原型,或使用ES2015模板文字。
var result = document.querySelector('#result'); // ----------------------------------------------------------------------------------- // Classic String.prototype.format = String.prototype.format || function () { var args = Array.prototype.slice.call(arguments); var replacer = function (a){return args[a.substr(1)-1];}; return this.replace(/(\$\d+)/gm, replacer) }; result.textContent = 'hello $1, $2'.format('[world]', '[how are you?]'); // ES2015#1 'use strict' String.prototype.format2 = String.prototype.format2 || function(...merge) { return this.replace(/\$\d+/g, r => merge[r.slice(1)-1]); }; result.textContent += '\nHi there $1, $2'.format2('[sir]', '[I\'m fine, thnx]'); // ES2015#2: template literal var merge = ['[good]', '[know]']; result.textContent += `\nOk, ${merge[0]} to ${merge[1]}`; <pre id="result"></pre>
注意,从2015年开始,模板只使用反引号
https://stackoverflow.com/a/37245773/294884
let a = `hello ${name}` // NOTE!!!!!!!! ` not ' or "
注意,这是一个反引号,而不是引号。
如果你想要类似的东西,你可以创建一个函数:
function parse(str) {
var args = [].slice.call(arguments, 1),
i = 0;
return str.replace(/%s/g, () => args[i++]);
}
用法:
s = parse('hello %s, how are you doing', my_name);
这只是一个简单的示例,没有考虑不同类型的数据类型(如%i等)或%s的转义。但我希望这能给你们一些启发。我很确定也有库提供了类似的功能。
var user = "your name";
var s = 'hello ' + user + ', how are you doing';