javascript - 从大字符串中检测 url 并在每个 url 的末尾添加一些文本

标签 javascript regex

我有一个很大的字符串,就像来自网络的正文 html,我想识别 url 并在每个 url 的末尾添加一些文本。

问题是,这并不适用于所有每个网址,它仅适用于与该网址内某个位置的 pollyn 文本匹配的网址。

像这样:http://www.domine.com/something/pollyn/something/

我需要的是:http://www.domine.com/something/pollyn/something/thisisthextadedd

我尝试:

body = body.replace(/(pollyn)\/?/ig, '$1something');

但问题在于,它取代了 pollyn 一词。

提前致谢。

更新:

解决方案是这样的:

function urlify(text) {
      var urlRegex = /(https?:\/\/[^\s]+)/g;
      return text.replace(urlRegex, function(url) {
        if(url.indexOf("pollyn") !== -1 || url.indexOf("poll") !== -1){
          url = url.replace('"',"");
          return url+"&something";
        }
        return url;
      });
    }

最佳答案

您需要的是一个正则表达式查找查询,Javascript 本身不支持该查询。但是,在这里调整第一个解决方案:mimic-lookbehind-javascript ,你可以做出一些做正确事情的东西。

剩下的问题是 URL 的终止符。例如,如果 URL 后面始终有一个空格,那么类似这样的操作就可以工作:

body=body.replace(/(\/pollyn\/.*?)?\/ /g, function(a,b){return b? b+"/test ":a;})

这会搜索“/pollyn/”,然后允许对任何字符进行惰性匹配(“.*?”),直到找到正斜杠和空格。然后,它将用 lambda 函数中定义的文本替换正斜杠和空格(还需要包含开头的正斜杠和结尾的空格)。

关于javascript - 从大字符串中检测 url 并在每个 url 的末尾添加一些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36088839/

相关文章:

javascript - 输入类型文本不应是可编辑的

javascript - 当没有匹配项时,正则表达式性能不佳

javascript - 如何将 replace() javascript regex 函数转换为 actionscript?

c# - 正则表达式在 c# 中不匹配

java - 使用 Java 正则表达式从文件中选择 HL7 数据

Java 模式 REGEX 不匹配的地方

javascript - 两个 DIVS,一个流体,一个固定,无论高度如何,固定 div 内部都有垂直居中的元素

javascript - 如何运行 npm 的示例

jquery - 如何执行 jQuery 正则表达式来查找我网站上右箭头 → 的所有 HTML 实体并添加类?

javascript - 在 Rxjs 中如何暂停一个数据流并从第二个继续它被暂停了?