问题
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>
Desired Textarea after jquery: all links to be cleaned/replaced with tags and target 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>
21 July 2012 - Ωmega's code worked a treat thanks, but could be improved by leaving already converted links?
回答1:
I believe you are looking for something like this (click here to test this fiddle):
$('#event_content').val(
$('#event_content').val().replace(/\b(http(s|):\/\/|)(www\.\S+)/ig,
"<a href='http\$2://\$3' target='_blank'>\$3</a>"));
回答2:
var link = $("#event_content");
var text = link.html();
var linktext = '<a href="' + text + '" target="_blank">' + text + '</a>'
link.html(linktext);
回答3:
$(function(){
var old = $('#event_content').val();
var news = '<a href="http://'+old+'" target="_blank">'+old+'</a>';
$('#event_content').val(news);
});
Note that the <a>
will not be displayed in textarea, but instead plain text will be shown.
Demo: http://jsfiddle.net/3xEh2/1/
回答4:
fiddle
This will replace all the links and leave the other text there as well.
$(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);
});
来源:https://stackoverflow.com/questions/11581372/jquery-how-to-replace-strings-inside-a-textarea