2017-07-18 56 views
0

请你能告诉我如何缩短这段代码。我想在一条线上做。有没有办法在一行中替换HTML文件中的几个出现?

var htmlstring = "<a href="{{1}}">{{1}}</a>Hello {{2}}, clic here !"; 
var firststep = htmlstring.replace('{{1}}', "http://google.fr"); 
var secondstep = htmlstring.replace('{{1}}', "http://google.fr"); 
var thirdstep = secondstep.replacee('{{2}}', "Mister"); 

总之, 我有:

<a href="{{1}}">{{1}}</a>Hello {{2}}, clic here ! 

我想有这样的结尾:

<a href="http://google.fr">http://google.fr</a>Hello Mister, clic here !" 
+0

你可以只要把它放在一行中,如果这就是你想要的 – Luca

+0

或者使用模板库,例如胡子。 – freakish

+0

是的,但我不知道如何使用正则表达式来实现它,因为替换函数只需要2个参数。我不想要任何库。 –

回答

0

当然,使用String.replaceregexp

const html = '<a href="{{1}}">{{1}}</a>Hello {{2}}, click here !' 
const url = 'http://google.fr'; 
const name = 'Mister'; 
const output = html.replace(/\{\{1\}\}/g, url).replace(/\{\{2\}\}/g, name); 
+0

好的,但我想先生替换{{2}}。所有这一切都在一行中。 –

+0

@ J.Doe没问题,更新。 – Lazyexpert

+0

@ J.Doe如果扩展原型可以接受你 - 我可以建议更好的方法。 – Lazyexpert

0

我不知道如何可以一气呵成同时取代{{1}}{{2}},但你可以使用此功能取代{{1}}都出现次数:

String.prototype.replaceAll = function(search, replacement) { 
    var target = this; 
    return target.replace(new RegExp(search, 'g'), replacement); 
}; 

使用方法如下:

var htmlstring = "<a href="{{1}}">{{1}}</a>Hello {{2}}, clic here !"; 
htmlstring.replaceAll("{{1}}", "http://google.fr"); 
htmlstring.replaceAll("{{2}}", "Mister");   
相关问题