如何将variables放在JavaScriptstring中? (Node.js的)

s = 'hello %s, how are you doing' % (my_name) 

这就是你如何在Python中做到这一点。 你怎么能在javascript / node.js中做到这一点?

如果你想有类似的东西,你可以创build一个函数:

 function parse(str) { var args = [].slice.call(arguments, 1), i = 0; return str.replace(/%s/g, function() { return args[i++]; }); } 

用法:

 s = parse('hello %s, how are you doing', my_name); 

这只是一个简单的例子,并没有考虑到不同types的数据types(如%i等)或转义%s 。 但是,我希望如果给你一些想法。 我很确定也有这样的库提供这样的function。

使用Node.js v4 ,您可以使用ES6的模板string

 var my_name = 'John'; var s = `hello ${my_name}, how are you doing`; console.log(s); // prints hello John, how are you doing 

你需要在反斜杠中换行而不是'

util.format这样做。

它将成为v0.5.3的一部分,可以像这样使用:

 var uri = util.format('http%s://%s%s', (useSSL?'s':''), apiBase, path||'/'); 

node.js >4.0它与ES6标准更加兼容,其中string操作得到了极大的改善。

原始问题的答案可以像下面这样简单:

 var s = `hello ${my_name}, how are you doing`; // note: tilt ` instead of single quote ' 

string可以分散多行,这使得模板或HTML / XML过程非常容易。 更多细节和更多的能力: 模板文字在mozilla.org 是string文字 。

去做

 s = 'hello ' + my_name + ', how are you doing' 

在JS中尝试sprintf,或者你可以使用这个要点

一些扩展String.prototype ,或者使用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> 
 var user = "your name"; var s = 'hello ' + user + ', how are you doing'; 

如果使用node.js,则console.log()将格式string作为第一个参数:

  console.log('count: %d', count); 

bob.js框架也做类似的东西:

 var sFormat = "My name is {0} and I am version {1}.0."; var result = bob.string.formatString(sFormat, "Bob", 1); console.log(result); //output: //========== // My name is Bob and I am version 1.0. 
 const format = (...args) => args.shift().replace(/%([jsd])/g, x => x === '%j' ? JSON.stringify(args.shift()) : args.shift()) const name = 'Csaba' const formatted = format('Hi %s, today is %s and your data is %j', name, Date(), {data: {country: 'Hungary', city: 'Budapest'}}) console.log(formatted)