首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript正则表达式全部匹配并替换

问JavaScript正则表达式全部匹配并替换
EN

Stack Overflow用户
提问于 2013-06-12 08:45:55
回答 2查看 10.6K关注 0票数 14

我用javascript编写了一个简单的模板函数。

我有我的模板加载很好,现在是我需要解析的内容到占位符的部分。

模板的一个示例是:

代码语言:javascript
复制
{{name}} is {{age}}

它们是动态的,所以理想情况下我想使用正则表达式来匹配和替换基于它们的名称的占位符,例如

{{name}}将替换为javascript数组中加载的内容,例如

代码语言:javascript
复制
data.name

data.age

这是我的正则表达式:/\{\{(.*?)\}\}/

这工作得很好,但是经过大量的搜索之后,我找不到一种定义的方法来迭代每个正则表达式匹配。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-12 08:54:39

首先,您需要在正则表达式上使用g标志。这将告诉JavaScript替换所有匹配值。您还可以为replace方法提供一个函数。如下所示:

代码语言:javascript
复制
var result = str.replace(/\{\{(.*?)\}\}/g, function(match, token) {
    return data[token];
});

第二个参数与第一个子组匹配,依此类推。

票数 36
EN

Stack Overflow用户

发布于 2013-06-12 08:53:56

代码语言:javascript
复制
var data = {
    name: 'zerkms',
    age: 42
};

var str = '{{name}} is {{age}}'.replace(/\{\{(.*?)\}\}/g, function(i, match) {
    return data[match];
});

console.log(str);

http://jsfiddle.net/zDJLd/

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17056064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档