用超链接替换[]中所有文本实例的javascript

时间:2012-03-14 07:06:00

标签: javascript regex

现在面临另一项挑战。我的html代码的某些部分有以下几行:

<div class="action-body flooded"><p>(In <span class="error">&#91;82681&#93;</span>)         refs <a href="/browse/AGLBD-16096" title="GlobalTestSuite tracking">AGLBD-16096</a><br/></div>

我必须在[]中获取数字,然后用超链接替换它。我尝试过使用document.getElementsByClassName('error'),但它不起作用。我怎样才能让它发挥作用?如果[]中有多个这样的数字,我还需要循环迭代以替换所有这些数字。例如:[123] [234] [345] ......

这就是我在pimvdb的帮助下写到的所有内容:

<script type="text/javascript">
var bodyText = document.getElementById('body').innerHTML;
var pattern = /\[.*?\]/g;
var replaceText = "<a href=\"www.mysite.com\">Pradeep</a>";
document.getElementById('body').innerHTML = bodyText.replace(pattern, replaceText);
</script>

3 个答案:

答案 0 :(得分:1)

这个JSFiddle可以满足您的需求:http://jsfiddle.net/TNyms/

答案 1 :(得分:1)

getElementById('body')替换为document.body时,代码适用于我。

var body = document.body;
var link = "<a href=\"http://www.mysite.com\">Pradeep</a>";
body.innerHTML = body.innerHTML.replace(/\[.*?\]/g, link);

用链接替换其中的所有ID:

<div class="action-body flooded">
    <p>(In
        <span class="error">&#91;82681&#93;</span>) refs
        <a href="/browse/AGLBD-16096" title="">AGLBD-16096</a>
        <br/>
</div>
<div>[123][abcd]</div>
<div>[456]</div>
<div>[789]</div>

输出:

  

(在Pradeep中)引用AGLBD-16096

     

Pradeep Pradeep

     

Pradeep

     

Pradeep

使用this fiddle尝试。

答案 2 :(得分:0)

您的问题似乎与以下链接中提出的问题有关。你可以参考这个

Replace number in a string using regex or something else