我知道在PHP中我们可以这样做:

$hello = "foo";
$my_string = "I pity the $hello";

输出:"I pity the foo"

我想知道同样的事情在JavaScript中是否也是可能的。在字符串中使用变量而不使用连接-它看起来更简洁和优雅。


当前回答

简单的使用方法:

var util = require('util');

var value = 15;
var s = util.format("The variable value is: %s", value)

其他回答

简单的使用方法:

var util = require('util');

var value = 15;
var s = util.format("The variable value is: %s", value)

在Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge之前,不,这在javascript中是不可能的。你将不得不求助于:

var hello = "foo";
var my_string = "I pity the " + hello;

在Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge之前,没有。尽管你可以尝试JavaScript的sprintf来实现:

var hello = "foo";
var my_string = sprintf("I pity the %s", hello);
String.prototype.interpole = function () {
    var c=0, txt=this;
    while (txt.search(/{var}/g) > 0){
        txt = txt.replace(/{var}/, arguments[c]);
        c++;
    }
    return txt;
}

Uso:

var hello = "foo";
var my_string = "I pity the {var}".interpole(hello);
//resultado "I pity the foo"

如果你想为微模板做插值,我喜欢用Mustache.js。