首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript中有没有类似于gsub的东西?

javascript中有没有类似于gsub的东西?
EN

Stack Overflow用户
提问于 2011-10-31 17:21:19
回答 5查看 19.2K关注 0票数 20

有没有办法在javascript中做一些类似ruby gsub的事情?我有一个本地html文件,我想要处理某些模板变量并将其替换为内容,但我不知道如何用新内容替换模板变量。html包含如下片段:

代码语言:javascript
复制
<div id="content">
    <h1>{{title}}</h1>
    {{content}}
</div>

现在,如果我将每个模板变量包装在一个命名的div中,那么我可以使用类似于jquery的replaceAll方法来用它的内容替换模板变量,但是如果不将每个变量都包装在div中,我就不知道如何做到这一点。

我只想做一些像$(‘document’).gsub(“{{title}”,"I am a title")这样的事情。

有谁有什么想法吗?

谢谢你的帮忙!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-31 17:26:11

您可以通过DOM元素的innerHTML属性访问原始的HTML,或者使用包装它的JQuery的html属性,然后执行替换:

代码语言:javascript
复制
var html = $(document).html();
$(document).html(html.replace('{{title}}', 'I am a title');

编辑:

正如Antti Haapala所指出的,替换整个文档HTML可能会产生您不想处理的副作用,比如重新加载脚本。因此,在执行替换之前,您应该向下钻取到最具体的DOM元素,即:

代码语言:javascript
复制
var element = $('#content');
var html = element.html();
element.html(html.replace('{{title}}', 'I am a title');
票数 7
EN

Stack Overflow用户

发布于 2013-03-31 11:53:33

如果其他人一般都在寻找与gsub等效的,那么这只会替换第一个匹配项:

代码语言:javascript
复制
"aa".replace("a", "b") // "ba"

//g将替换所有匹配项:

代码语言:javascript
复制
"aa".replace(/a/g, "b") // "bb"
"aa".replace(new RegExp("a", "g"), "b"); // "bb"
票数 32
EN

Stack Overflow用户

发布于 2011-10-31 17:26:20

嗯,您可以使用带有正则表达式的String.replace,但实际上,您可以使用的是jQuery模板。

http://api.jquery.com/category/plugins/templates/

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

https://stackoverflow.com/questions/7951768

复制
相关文章

相似问题

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