我有一个带有令牌的模板,需要用实际值替换,然后通过电子邮件发送。为了做到这一点,我需要帮助用一些值替换我的标记并从标记中提取标记类型。
令牌:{{token_type:token_content}}
例如:{{input_box:greeting}}
var str = "<p class=MsoNormal>{{input_box:greeting}},", regex = "/{{[a-z\:]+}}/";
var n = str.replace(regex, someValue);
document.getElementById("demo").innerHTML = n;
答案 0 :(得分:2)
正则表达式应使用正斜杠而不是引号分隔。 在OP代码中,
regex = "/{{[a-z\:]+}}/";
是字符串,而不是正则表达式。
使用非贪婪的正则表达式匹配以{{
开头的任何字符串,直到}}
。
regex = /{{.*?}}/;
Updated Fiddle - RegEx101 Live Demo
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;