2009-10-30 78 views
0

我知道零的JavaScript,并有一个简单的任务:?[+]]简单的JavaScript搜索和替换

  1. 查找窗体的当前HTML中的所有文本
  2. 提取内容的括号
  3. 用下划线替换所有空格字符
  4. 替换整个表达式,输出<img src="foo.com/$1.jpg"/>,其中$ 1是匹配的文本(替换空格后)。

我可以打扰你才会这样一个片断(这应该内部[[]]所有文本在HTML中做)?

+0

您是否尝试过*任何*尚未?在这里给我们一些努力的迹象。 – 2009-10-30 18:45:48

+2

好吧,我已经将它发布到SO,但目前没有帮助。 – ripper234 2009-10-30 18:47:32

回答

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, ...); 
} 
+0

+1提醒我只在某些元素上运行而不是整个html – ripper234 2009-10-31 10:29:50