简单的javascript搜索和替换

时间:2009-10-30 18:37:50

标签: javascript

我知道零javascript,并且有一个简单的任务:

  1. 查找[[。+?]]
  2. 形式的当前html中的所有文本
  3. 提取括号内容
  4. 用下划线替换所有空格字符
  5. 而不是整个表达式,输出<img src="foo.com/$1.jpg"/>,其中$ 1是匹配的文本(在替换空格之后)。
  6. (这应该对html中的[[]]内的所有文字都有效)
  7. 我可以用这样做的片段打扰你吗?

1 个答案:

答案 0 :(得分:2)

假设您已经在名为html的变量中拥有HTML源代码,您可以执行以下操作:

var converted = html.replace(/\[\[(.+?)\]\]/g, function (s, token) {
    return '<img src="foo.com/'
        + token.split(" ").join("_")
        + '.jpg"/>';
});

要在<body>中获取或设置整个HTML,您可以使用document.body.innerHTML。但是,如果该字符串模式并未真正出现在页面中的随机位置,我建议专门针对某个id或类的元素。我还建议您使用jQuery来定位这些元素并更改其内容:

$(".replacable").each(function () {
    this.html(imagize(this.html()));
});

function imagize(html) {
    return html.replace(/\[\[(.+?)\]\]/g, ...);
}