使用javascript逐个替换字符串

使用javascript逐个替换字符串,javascript,jquery,regex,replace,Javascript,Jquery,Regex,Replace,我希望使用javascript动态替换大量占位符文本。尝试使用jquery过滤器和contain选择器,但实际上没有成功。你知道如何更换这些吗 <div class="container"> <h1>$$Insert text here$$</h1> <div> <p>My first paragraph.</p> <div>$$Insert text here$$</div>

我希望使用javascript动态替换大量占位符文本。尝试使用jquery过滤器和contain选择器,但实际上没有成功。你知道如何更换这些吗

<div class="container">
<h1>$$Insert text here$$</h1>
<div>
    <p>My first paragraph.</p>
    <div>$$Insert text here$$</div>
    <div>
        <input type="text" name="lname" placeholder="$$Insert text here$$"><br>
        <p>Here some other text</p>
    </div>
</div>

$$在此处插入文本$$
我的第一段

$$在此处插入文本$$
这里有一些其他文本


使用模板引擎更好,但即使使用纯JS也可以实现这一点

document.body.innerHTML = document.body.innerHTML.replace(new RegExp('\\$\\$Insert text here\\$\\$','g'), 'replace it with');

演示

最好使用模板引擎,但即使使用纯JS也可以实现这一点

document.body.innerHTML = document.body.innerHTML.replace(new RegExp('\\$\\$Insert text here\\$\\$','g'), 'replace it with');

演示

一个简单的示例,假设您只有一种用于学习的占位符:

var container = $('.container');
container.html(container.html().replace(/\$\$Insert text here\$\$/g,'mytext'))
演示:


如果您试图实现自己的模板引擎,下面是一个更复杂的示例,您可以使用不同的占位符名称:

html:


演示:

一个简单的示例,假设您只有一种用于学习的占位符:

var container = $('.container');
container.html(container.html().replace(/\$\$Insert text here\$\$/g,'mytext'))
演示:


如果您试图实现自己的模板引擎,下面是一个更复杂的示例,您可以使用不同的占位符名称:

html:


演示:

这里有一个小的实际例子, 您基本上可以通过任何模型:

 <div class="container">
 <h1>Hi $$fname$$ $$lname$$</h1>
 <div>
 <p>My first paragraph.</p>
 <div>You are the <b>$$title$$</b> of <b> $$company$$ </b></div>
 <div>
  <input type="text" name="lname" placeholder="$$salary$$"><br/>
    <p>Call us at $$phone$$</p>
</div>
</div>


 var myobj = {
  fname: 'Alex',
  lname: 'Shilman',
  title: 'CEO',
  company: 'Interactive Aim',
  phone: '(111)111-1111',
  salary: 10000000
  },
 makeView = function(myobj){
  for (var key in myobj){
   $('div.container').html($('div.container').html().replace('$$'+key+'$$',    myobj[key]));
  }
 };  

  makeView(myobj);

你好$$fname$$$$lname$$
我的第一段

您是$$company$$的$$title$$
请致电$$电话给我们$$

var myobj={ fname:'亚历克斯', 名称:“Shilman”, 标题:“首席执行官”, 公司:“互动目标”, 电话:‘(111)111-1111’, 工资:10000000 }, makeView=函数(myobj){ for(myobj中的var键){ $('div.container').html($('div.container').html().replace('$$'+key+'$$',myobj[key]); } }; makeView(myobj);

JSBin工作示例:

这里有一个小的实际示例, 您基本上可以通过任何模型:

 <div class="container">
 <h1>Hi $$fname$$ $$lname$$</h1>
 <div>
 <p>My first paragraph.</p>
 <div>You are the <b>$$title$$</b> of <b> $$company$$ </b></div>
 <div>
  <input type="text" name="lname" placeholder="$$salary$$"><br/>
    <p>Call us at $$phone$$</p>
</div>
</div>


 var myobj = {
  fname: 'Alex',
  lname: 'Shilman',
  title: 'CEO',
  company: 'Interactive Aim',
  phone: '(111)111-1111',
  salary: 10000000
  },
 makeView = function(myobj){
  for (var key in myobj){
   $('div.container').html($('div.container').html().replace('$$'+key+'$$',    myobj[key]));
  }
 };  

  makeView(myobj);

你好$$fname$$$$lname$$
我的第一段

您是$$company$$的$$title$$
请致电$$电话给我们$$

var myobj={ fname:'亚历克斯', 名称:“Shilman”, 标题:“首席执行官”, 公司:“互动目标”, 电话:‘(111)111-1111’, 工资:10000000 }, makeView=函数(myobj){ for(myobj中的var键){ $('div.container').html($('div.container').html().replace('$$'+key+'$$',myobj[key]); } }; makeView(myobj);

JSBin工作示例:

为什么不使用现有模板引擎?为什么不使用现有模板引擎?