2011-10-05 331 views
0

我使用這個函數來刪除http://,https://和www。從我的網址。刪除字符串末尾的'/'?

function cleanUrl2(url) { 
    return url.replace(/^(http(s)?:\/\/)?(www\.)?/gi,""); 
} 

我的問題是,我有時會:

google.com 

有時:

google.com/something/ 

的 '/' 末引起了很多與我的數據庫問題。如果它是最後一個字符,我需要我的函數也刪除'/'。

我該怎麼做?

回答

1
function cleanUrl2(url) { 
    return url.replace(/^(http(s)?:\/\/)?(www\.)?/gi,"").replace(/\/$/, ""); 
} 
1
function cleanUrl2() { 
    return url.replace(/^(http(s)?:\/\/)?(www\.)?|\/$/gi,""); 
} 

應該做的伎倆(上FF一樣)

3

的URL google.com/something/並不等同與google.com/something的網絡服務器(或後面的代碼),決定哪些數據請求這些URL時正擔任。

而且www.google.comgoogle.com不一樣,可能它們甚至指向不同機器上的不同IP地址。

所以在你做任何替換之前,請考慮一下。

+0

+1順便說一句,www.google.com本身指向不同的機器有不同的IP地址 – Eineki

+0

其實(現在,對我來說)'www.google.com'是一個別名爲'www.l.google.com'它指向與google.com相同的地址。 –

+0

...和www.l.google.com回覆6個不同的IP地址(循環賽?)。我只是指出ip-> domain和domain-> ip不是唯一的 – Eineki

1

嘗試

"google.com/something/".replace(/\/$/,"") 
1
url = url.replace(/\/$/, ""); 

但你一定要會做這個?根據Web服務器的不同,如果刪除尾部斜線,則URL不一定有效。你最好用數據庫代碼解決這個問題,這會導致尾部斜線真的成爲問題。