2012-07-11 110 views
1

我有一個腳本,通過搜索網址和尋找一個特定的域名,然後追加一些參數到網址的末尾。但是,如果運行多次,它會將重複參數添加到同一個網址。是否有可能檢查網址是否已經有參數?追加參數到URL,避免重複

JSFiddle

original stackoverflow post

代碼被修改

<div id="wp-content-editor-container" class="wp-editor-container"><textarea class="wp-editor-area" rows="10" tabindex="1" cols="40" name="content" id="content">&lt;a title="Link to test domain" href="http://www.domain.com"&gt;Link to google&lt;/a&gt; 
&lt;a href="http://google.com/directory/subdirectory/index.html"&gt;This is another link&lt;/a&gt; 
&lt;a href="http://domain.com/directory/index.html"&gt;This is a 3rd link&lt;/a&gt; 

&lt;a href="http://www.domain.com/subdir?parameter"&gt;this url already has parameters&lt;/a&gt;</textarea></div> 

jQuery腳本

var url = 'www.domain.com'; 
var append = '?parameter'; 

$(".wp-editor-area").each(function() { 
    $(this).text(urlify($(this).text())); 
}); 

function urlify(text) { 
    var urlRegex = /(\b(https?|ftp|file):\/\/[www.domain.com][-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; 
    return text.replace(urlRegex, function(url) { 
     return url + append; 
    }) 
} 

電流輸出

<a title="Link to test domain" href="http://www.domain.com?parameter">Link to google</a> 
<a href="http://google.com/directory/subdirectory/index.html">This is another link</a> 
<a href="http://domain.com/directory/index.html?parameter">This is a 3rd link</a> 

<a href="http://www.domain.com/subdir?parameter?parameter">this url already has parameters</a> 

理想的輸出不會在URL^

感謝的末尾添加第二個「?參數」!

+0

是不是隻是檢查參數字符串是否在完整的url或不是?如果是的話就不要添加它,否則加上參數 – Huangism 2012-07-11 20:32:25

+0

是的,那就是他想要的。 – james31rock 2012-07-12 13:15:25

回答

2

我認爲你可以使用indexOf來檢查URL是否已經包含你要附加的內容。

function urlify(text) { 
       var urlRegex = '/(\b(https?|ftp|file):\/\/[www.domain.com][-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig'; 
       return text.replace(urlRegex, function (url) { 
        // if the url does not contain append, concat append to the URL 
        if (url.indexOf(append) == -1) { 
         return url + append; 
        } 
        return url; 
       }); 
+0

給我一個小提琴的URL嗎? – james31rock 2012-07-11 20:55:37

+0

我之前誤了,並刪除了評論。原來的答案很精美地謝謝你!比搜索網址要容易得多。 – DirkDiggler 2012-07-11 21:12:37

+0

很高興能幫到你! – james31rock 2012-07-12 13:10:50