如何在javascript中替换令牌?

时间:2015-12-08 11:09:21

标签: javascript angularjs regex

我有一个带有令牌的模板,需要用实际值替换,然后通过电子邮件发送。为了做到这一点,我需要帮助用一些值替换我的标记并从标记中提取标记类型。

令牌:{{token_type:token_content}}

例如:{{input_box:greeting}}

代码jsfiddle link

var str = "<p class=MsoNormal>{{input_box:greeting}},", regex = "/{{[a-z\:]+}}/"; 
var n = str.replace(regex, someValue);
document.getElementById("demo").innerHTML =  n;

1 个答案:

答案 0 :(得分:2)

正则表达式应使用正斜杠而不是引号分隔。 在OP代码中,

regex = "/{{[a-z\:]+}}/";

字符串,而不是正则表达式。

使用非贪婪的正则表达式匹配以{{开头的任何字符串,直到}}

regex = /{{.*?}}/;

Updated Fiddle - RegEx101 Live Demo

&#13;
&#13;
var myFunction = function() {
  var str = "<p class=MsoNormal>{{input_box:greeting}},",
    regex = /{{.*?}}/;
  console.log(str);
  console.log(regex);
  var n = str.replace(regex, "Hello There");
  document.getElementById("demo").innerText = n;
}
&#13;
<button onclick="myFunction()">Replace</button>
<p id="demo"></p>
&#13;
&#13;
&#13;