检测一串文本中的Web地址,并使用jQuery将其作为超链接

时间:2013-11-07 17:51:03

标签: jquery html hyperlink

我有动态生成的文本,其中可能包含指向网页的链接。我想自动检测用户是否有“www.someaddress.com”或“http://someaddress.com”或“http://www.someaddress.com”并将其设为真正的超链接而不仅仅是文本。

这是HTML:

你好,我的名字是杰克,我做了一个网站。请访问www.jakewebsite.com查看。     
<div class="text_container">
Hello my name is Frank and I made a website. Check it out at www.frankwebsite.com. 

</div>
<div class="text_container">
Hello my name is Jeff and I made a website. Check it out at www.jeffwebsite.com. 

</div>

我试图尝试编写一些jQuery代码,至少将www表达式包装在aHref标记中,但它所做的就是将aHref放在text_container的begingin中。我不知道如何在整个文本周围包装ahref,使其成为一个超链接。

var foundin = $('*:contains("www.")');

foundin.prepend("<a href='test.php'>");
foundin.append("</a>");

1 个答案:

答案 0 :(得分:0)

你应该使用正则表达式识别链接,如deweyredman所说。此外,您正在看到当前行为,因为:contains(),prepend()和append()起作用。你在这里做的是查找标签包含字符串“www。”的所有实例,然后将标签添加到内部html,然后将标签附加到该标签。从而得到你的行为。相反,你想要做的就是像这样重新分配html。

var foundin = $('div:contains("www.")');

var textVal = foundin.text();
foundin.html("<a href='test.php'>" + textVal + "</a>");