当前位置:  开发笔记 > 编程语言 > 正文

链接脚本的jQuery文本?

如何解决《链接脚本的jQuery文本?》经验,为你挑选了3个好方法。

有没有人知道一个脚本可以选择对URL的所有文本引用,并自动用指向这些位置的锚标签替换它们?

For example:

http://www.google.com 

would automatically turn into

http://www.google.com

注意:我想要这个,因为我不想浏览我的所有内容并用锚标记包装它们.



1> Már Örlygsso..:

注意:此脚本的更新和更正版本现在可从https://github.com/maranomynet/linkify(GPL/MIT许可证)获得


嗯......对我来说,这似乎是jQuery的完美任务.

......这样的事情脱离了我的脑海:

// Define: Linkify plugin
(function($){

  var url1 = /(^|<|\s)(www\..+?\..+?)(\s|>|$)/g,
      url2 = /(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/g,

      linkifyThis = function () {
        var childNodes = this.childNodes,
            i = childNodes.length;
        while(i--)
        {
          var n = childNodes[i];
          if (n.nodeType == 3) {
            var html = $.trim(n.nodeValue);
            if (html)
            {
              html = html.replace(/&/g, '&')
                         .replace(//g, '>')
                         .replace(url1, '$1$2$3')
                         .replace(url2, '$1$2$5');
              $(n).after(html).remove();
            }
          }
          else if (n.nodeType == 1  &&  !/^(a|button|textarea)$/i.test(n.tagName)) {
            linkifyThis.call(n);
          }
        }
      };

  $.fn.linkify = function () {
    return this.each(linkifyThis);
  };

})(jQuery);

// Usage example:
jQuery('div.textbody').linkify();

它会尝试将以下所有出现的内容转换为链接:

www.example.com/path

http://www.example.com/path

mailto:me@example.com

ftp://www.server.com/path

...以上所有包裹在尖括号中(即<...... >)

请享用 :-)



2> Pseudo Masoc..:

由于您并不真正关心DOM遍历/操作(除了创建锚标记之外),因此JQuery不会在这里帮助您.如果您的所有网址都在

标签中,那么也许.

一个普通的JavaScript解决方案可能就是你想要的,而且就像命运一样,这个人应该让你满意.


我不同意,解决这个问题需要大量的DOM遍历(可能不是很多CSS选择器),jQuery是一个很好的解决这个问题的工具.(请参阅下面的jQuery插件示例草稿.)

3> Kimtho6..:

我有这个功能我打电话

textToLinks: function(text) {

    var re = /(https?:\/\/(([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?))/g;
    return text.replace(re, "$1");
  }

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有