使用Javascript或Lodash替换字符串

时间:2016-08-10 16:00:14

标签: javascript string lodash

有一种情况,我有一个包含多个链接字符串的字符串,如下所示。我需要用实际链接替换链接,例如:<a href=”http://www.testing.com” target=_blank>http://www.asdfasd.com</a>

示例文字:

http://www.testing.com Simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap https://asdfasdf.com

我正在使用以下功能获取&#39; http&#39;发生,但想知道是否有更简单的方法。

indexes(comments.Answers, "http");

function indexes(source, find) {
  var result = [];
  for (var i = 0; i < source.length; ++i) {
    // If you want to search case insensitive use 
    // if (source.substring(i, i + find.length).toLowerCase() == find) {
    if (source.substring(i, i + find.length) == find) {
      result.push(i);
    }
  }
 console.log("result ", result);

  return result;
}

1 个答案:

答案 0 :(得分:0)

不要滚动你自己的正则表达式,你会做错的。你不会意识到这是错的,直到为时已晚。你会花费数小时和数天来研究你的正则表达式,最后让它运转起来,出去喝醉,坚持一段时间,只为你的客户一个月后回来生气,你错过了一些优势,使所有人失效你的工作,并迫使你从头开始。只是不要去那里。

使用久经考验的图书馆。

插件linkify专门为您的目的而构建。他们在页面上有一个可以试用的测试框,它似乎可以完美地处理你的示例文本。

如果您真的想手动构建链接,库validator.js有一个名为isURL的函数,它会检查给定的字符串是否为URL。您可以遍历以空格分隔的文本单词,并检查每个单词是否为URL,并根据需要将其设为链接。

如果您想探索更多选项,我建议您阅读this old post的回复。