Javascript ES6&x27的ES5替代方案是什么;s标记的模板文本?

Javascript ES6&x27的ES5替代方案是什么;s标记的模板文本?,javascript,Javascript,我在ES6标准中有以下代码: function test(html, ...args) { return html.slice(1).reduce((str, elem, i) => str + args[i] + elem, html[0]); } 使用它的方法如下: var hello = 'Hello'; var world = 'Arcanadian Arc'; document.body.innerHTML = test`<h1>${hello

我在ES6标准中有以下代码:

 function test(html, ...args) {
   return html.slice(1).reduce((str, elem, i) => str + args[i] + 
  elem, html[0]);
 }
使用它的方法如下:

 var hello = 'Hello';
 var world = 'Arcanadian Arc';
 document.body.innerHTML = test`<h1>${hello} ${world}!</h1>`;
 var hello = 'Hello';
 var world = 'Arcanadian Arc';
 document.body.innerHTML = test(_templateObject(), hello);
它可以工作,但语法有点混乱。我想通过将ES6的${}替换为{{{}或aome other来将其命名为这样的东西,然后它将看起来像这样:

var hello = "Hello";
var world = "Arcanadian Arc";
document.body.innerHTML = test`<h1>{{ hello }} {{ world }}!';
var hello=“hello”;
var world=“阿卡纳弧”;
document.body.innerHTML=test`{{{hello}}{{{world}}!';
输出:

 <h1>Hello Arcanadian Arc!</h1>
<h1>Hello Arcanadian Arc!</h1>
你好,阿卡那亚弧!
它看起来很像ES6,最重要的是,它不像之前的那个那么凌乱。但我不知道该怎么做!你能帮助我吗?但问题是,这能做到吗?这可以作为ES6的替代方案吗?还是有一个pollyfill


提前感谢

在regex和replace的帮助下,您可以做一些类似的事情,但是在开发项目时,您应该使用最新的功能,将这些怪癖留给诸如或任何其他transpiler之类的工具

var hello=“hello”;
var world=“阿卡纳弧”;
功能测试(str、args){
返回str.replace(/{(.*)}}/g,(m,g1)=>args[g1.trim()]| | m)
}

log(test({{hello}}{{world}!',{hello,world}))
您可以在regex和replace的帮助下做类似的事情,但是您应该在开发项目时使用最新的特性,将这些怪癖留给其他transpiler之类的工具

var hello=“hello”;
var world=“阿卡纳弧”;
功能测试(str、args){
返回str.replace(/{(.*)}}/g,(m,g1)=>args[g1.trim()]| | m)
}

log(test({{hello}}{{world}!',{hello,world}))
为什么不想使用更新的版本?
那么它看起来像这样
,IE也不能使用它。。。不确定如何将
${…}
更改为
{…}
更好,因为我的项目必须支持较旧的浏览器?不,但你提到了IET旧版本为什么不使用较新版本?
那么它看起来像这样,IE也不能使用它。。。不确定如何将
${…}
更改为
{{…}
更好,因为我的项目必须支持较旧的浏览器?不,但您提到的是旧版本的IET,它离我想要的非常近。我可以用这个!!非常感谢,这离我想要的很近了。我可以用这个!!谢谢
<h1>Hello Arcanadian Arc!</h1>