1

簡単に言えば、URL リンクを解析し、jQuery、RegEx を使用して html 参照を追加したいと考えています。

ソース HTML は次のとおりです。

<div id="test"> my favorite search engines are http://www.google.com 
    and http://stackoverflow.com Do you agree? </div>

私の現在のスクリプトは次のとおりです。

var exp = /(^|[^'">])((ftp|http|https):\/\/(\S+))(\b|$)/gi;
$('#test').html($('#test').html().replace(exp,
    "&nbsp;<a href='$2' target='_blank'><img src='go.gif'/></a>"));
});

そして、その結果は次のとおりです。

<div id="test"> my favorite search engines are 
<a href="http://www.google.com" target='_blank'>
<img src='go.gif'/></a> and
<a href="http://stackoverflow.com" target='_blank'>
<img src='go.gif'/></a>
Do you agree? </div>

このスクリプトは単に置換するだけで、そのソースを保持できないことを知っています。「img タグ」の直後に元の URL を追加したいと思います。誰でも次の結果を得るためのアイデアを持っていますか?

<div id="test"> my favorite search engines are 
<a href="http://www.google.com" target='_blank'>
<img src='go.gif'/>http://www.google.com</a> and
<a href="http://stackoverflow.com" target='_blank'>
<img src='go.gif'/>http://stackoverflow.com</a>
Do you agree? </div>

コメントありがとうございます。

4

3 に答える 3

0

このようなもの:

var urlRE = /(^|[^'">])((ftp|http|https):\/\/(\S+))(\b|$)/gi;
var $test = $('#test');
var text = $test.text();

text = text.replace(urlRE, "<a href=\"$&\">$&</a>");

$test.html(text);

jsフィドル

于 2013-06-27T03:57:51.993 に答える
0
于 2013-06-27T03:59:29.423 に答える