JQuery如何替换textarea中的字符串?

时间:2012-07-20 14:27:40

标签: javascript jquery html regex replace

Current Textarea:

<textarea id="event_content">
This text area could be full of information..www.london2012.com
And might contain upto 5 links that all need updating.
www.rio2016.org

Link already converted. this should be left.
<a href="http://www.thetimes.co.uk" target="_blank">www.thetimes.co.uk</a>
</textarea>

在jquery之后所需的Textarea:所有链接都要用标签和目标attr清理/替换

<textarea id="event_content">
This text area could be full of information
<a href="http://www.london2012.com" target="_blank">www.london2012.com</a>
And might contain upto 5 links that all need updating.
<a href="http://www.rio2016.org" target="_blank">www.rio2016.org</a>

Link already converted. this should be left.
<a href="http://www.thetimes.co.uk" target="_blank">www.thetimes.co.uk</a>
</textarea>

2012年7月21日 - Ωmega's代码表示感谢,但是可以通过保留已转换的链接来改进吗?

4 个答案:

答案 0 :(得分:8)

我相信你正在寻找这样的东西(点击here来测试这个小提琴):

$('#event_content').val(
  $('#event_content').val().replace(/\b(http(s|):\/\/|)(www\.\S+)/ig,
    "<a href='http\$2://\$3' target='_blank'>\$3</a>"));

答案 1 :(得分:1)

var link = $("#event_content");
var text = link.html();
var linktext = '<a href="' + text + '" target="_blank">' + text + '</a>'
link.html(linktext);

答案 2 :(得分:1)

$(function(){
    var old = $('#event_content').val();

    var news = '<a href="http://'+old+'" target="_blank">'+old+'</a>';

    $('#event_content').val(news);
});

请注意,<a>不会显示在textarea中,而是会显示纯文本。

演示:http://jsfiddle.net/3xEh2/1/

答案 3 :(得分:1)

fiddle

这将替换所有链接,并将其他文本保留在那里。

$(function(){
var old = $('#event_content').val();
var news = old.replace("www.london2012.com", '<a href="http://www.rio2016.com" target="_blank">www.rio2016.com</a>');   
$('#event_content').val(news);
});