代码之家  ›  专栏  ›  技术社区  ›  uzay95

javascript中的RegExp问题

  •  1
  • uzay95  · 技术社区  · 14 年前

    我想在文本中找到每个url并用标记将其包装起来( <a href="...">...</a> ).

    var src = "bla blaaa blaaaaaa 1  http://yahoo.com  text something about and. http://www.google.com";
    var match = /http:\/\/([a-z0-9.-]+)/.exec(src); //this only can one matched
    // result: ["http://yahoo.com", "yahoo.com"]
    

    但我需要把每一个环节都包装好。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Nick Craver    14 年前

    你可以用 /g (全局)要匹配所有发生的事件和这样的反向引用:

    var src = "bla blaaa blaaaaaa 1  http://yahoo.com  text something about and. http://www.google.com";
    var match = src.replace(/http:\/\/([a-z0-9.-]+)/g, '<a href="$1">$1</a>');
    

    You can test it out here .

        2
  •  1
  •   jensgram    14 年前
    var res = src.replace(/(http:\/\/([a-z0-9.-]+))/g, '<a href="$1">$2</a>');
    

    输出:

    bla blaaa blaaaaaa 1 <a href="http://yahoo.com">yahoo.com</a> text something about and. <a href="http://www.google.com">www.google.com</a>

    我不确定这是什么意思,但我能想到的是。使用 <a href="$1">$1</a> 如果要保留 http://

    (与此同时,尼克·克雷弗给出了答案 介绍了 g