[英]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.