2011-10-05 271 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不一定有效。你最好用数据库代码解决这个问题,这会导致尾部斜线真的成为问题。