如何将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)