簡體   English   中英

從大字符串中檢測URL,並在每個URL的末尾添加一些文本

[英]Detect urls from a big string and add some text to the end of each url

我有一個很大的大字符串,例如來自Web的主體html,我想識別這些URL,並在每個URL的末尾添加一些文本。

事實是,這並不適用於所有網址,僅適用於與該網址內某個位置的花粉文本匹配的網址。

像這樣: 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函數中定義的文本替換正斜杠和空格(它還需要在開始處包含正斜杠,並在末尾包含空格)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM