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

Javascript 从大字符串中检测url,并在每个url的末尾添加一些文本,javascript,regex,Javascript,Regex,我有一个大字符串,就像来自web的主体html,我想识别url并在每个url的末尾添加一些文本 问题是,这并不适用于所有的url,它只适用于与url中某个位置的pollyn文本匹配的url 像这样: 我需要的是: 我尝试: body = body.replace(/(pollyn)\/?/ig, '$1something'); 但问题是,雷姆用了波林这个词 提前谢谢 更新: 解决方案是这样的: function urlify(text) { var urlRegex = /(htt

我有一个大字符串,就像来自web的主体html,我想识别url并在每个url的末尾添加一些文本

问题是,这并不适用于所有的url,它只适用于与url中某个位置的pollyn文本匹配的url

像这样:

我需要的是:

我尝试:

body = body.replace(/(pollyn)\/?/ig, '$1something');
但问题是,雷姆用了波林这个词

提前谢谢

更新:

解决方案是这样的:

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中本机不支持的regex look-behind查询。然而,通过调整这里的第一个解决方案,您可以做出正确的事情

剩下的问题是URL以什么结尾。例如,如果URL后面始终有一个空格,则类似的操作可能会起作用:

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

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

您需要的是一个在Javascript中本机不支持的正则表达式查找查询。然而,通过调整这里的第一个解决方案,您可以做出正确的事情

剩下的问题是URL以什么结尾。例如,如果URL后面始终有一个空格,则类似的操作可能会起作用:

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

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

我做了如下操作:函数urlify(text){var urlRegex=/(https?:\/\/[^\s]+)/g;返回文本。替换(urlRegex,函数(url){if(url.indexOf(“pollyn”)!=-1 | url.indexOf(“poll”)!=-1{url=url.replace(“,”);返回url+“&thomething”}返回url;}我做了如下操作:函数urlify(text){var urlRegex=/(https?:\/\/[^\s]+)/g;返回文本。替换(urlRegex,函数(url){if(url.indexOf(“pollyn”)!=-1 | url.indexOf(“poll”)!=-1{url=url.replace(“,”);返回url+“&thomething”}返回url;}