我用javascript编写了一个简单的模板函数。
我有我的模板加载很好,现在是我需要解析的内容到占位符的部分。
模板的一个示例是:
{{name}} is {{age}}它们是动态的,所以理想情况下我想使用正则表达式来匹配和替换基于它们的名称的占位符,例如
{{name}}将替换为javascript数组中加载的内容,例如
data.name
data.age这是我的正则表达式:/\{\{(.*?)\}\}/
这工作得很好,但是经过大量的搜索之后,我找不到一种定义的方法来迭代每个正则表达式匹配。
提前感谢
发布于 2013-06-12 08:54:39
首先,您需要在正则表达式上使用g标志。这将告诉JavaScript替换所有匹配值。您还可以为replace方法提供一个函数。如下所示:
var result = str.replace(/\{\{(.*?)\}\}/g, function(match, token) {
return data[token];
});第二个参数与第一个子组匹配,依此类推。
发布于 2013-06-12 08:53:56
var data = {
name: 'zerkms',
age: 42
};
var str = '{{name}} is {{age}}'.replace(/\{\{(.*?)\}\}/g, function(i, match) {
return data[match];
});
console.log(str);https://stackoverflow.com/questions/17056064
复制相似问题