0

我想知道如何在我的情况下使用这个脚本>>> https://stackoverflow.com/a/3890175/1503192 ...

这是我的 jsfiddle >>> jsfiddle.net/kZfGV/134/

HTML:

<body onLoad="linkify(inputText)">
    https://google.com/<br />       
    http://google.com/<br />
    https://www.google.com/<br />
    http://www.google.com/<br />
    www.google.com<br />
    www.google.com<br />
    admin@google.com
</body>

JS:

function linkify(inputText) {
    var replacedText, replacePattern1, replacePattern2, replacePattern3;

    //URLs starting with http://, https://, or ftp://
    replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
    replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');

    //URLs starting with "www." (without // before it, or it'd re-link the ones done above).
    replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
    replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>');

    //Change email addresses to mailto:: links.
    replacePattern3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;
    replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');

    return replacedText;
}

我已经在 jsfiddle 中尝试过,但在我的博客中尝试了这么多次之前我仍然无法弄清楚。我也在stackoverflow和google上搜索过这个,但似乎没有任何效果。我是这个领域的新手。请帮帮我。谢谢

4

3 回答 3

2

http://jsfiddle.net/kZfGV/137/

html:

<span class="linkify">https://google.com/</span><br />       
<span class="linkify">http://google.com/</span><br />
<span class="linkify">https://www.google.com/</span><br />
<span class="linkify">http://www.google.com/</span><br />
<span class="linkify">www.google.com</span><br />
<span class="linkify">www.google.com</span><br />
<span class="linkify">admin@google.com</span>

javascript:

$(document).ready(function()
{
    $(".linkify").text(function(){
        return  linkify($(this).text());
    });
});
于 2013-09-03T13:22:12.960 回答
2

首先,您没有在 function 中指定什么是输入文本linkify

其次,您确实使用了返回值。

工作示例是http://jsfiddle.net/T7ANY/

脚本看起来像(没有 jQuery 或任何其他插件)

function linkify(inputText) {
    var replacedText, replacePattern1, replacePattern2, replacePattern3;

    //URLs starting with http://, https://, or ftp://
    replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
    replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');

    //URLs starting with "www." (without // before it, or it'd re-link the ones done above).
    replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
    replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>');

    //Change email addresses to mailto:: links.
    replacePattern3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;
    replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');

    return replacedText;
}

document.body.innerHTML = linkify(document.body.innerHTML)
于 2013-09-03T13:11:56.810 回答
0

尝试这个:

  <!-- jquery and linkify includes here -->
  <script>
  $( function() {
    var body = $('body');
    body.html( linkify( body.html() ) );
  } )
  </script>
  <body> ...
于 2013-09-03T13:10:09.010 回答