JQuery检查并从URL读取结束时删除斜杠

时间:2011-01-19 20:32:10

标签: javascript jquery string

在jQuery脚本中,我有一行代码,它获取当前URL的字符串:

var target = $(this).attr('href');

此脚本中的代码是否可以检查URL字符串末尾是否有斜杠。如果它存在然后删除它?有什么办法可以推荐?

4 个答案:

答案 0 :(得分:22)

我会这样做:

 target = target.replace(/\/$/, '');

现在,如果您需要担心查询字符串的存在:

 <a href='http://foo.bar.com/something/?param=xyz'>hi</a>
然后事情变得有点棘手。使用正则表达式解析URL可能是可能的,但它非常混乱。如果你可以逃脱它,缩小你的URL可能的样子的可能性,这样你就不必使用一些巨大的“官方”模式。

答案 1 :(得分:4)

这对于具有查询字符串的URL也应该是安全的,并且它不使用正则表达式....

var urlEnd = target.indexOf("?");
if(urlEnd == -1){
    urlEnd = target.length;
}

// Don't bother doing anything if the URL is empty
if (urlEnd > 0){
    if (target[urlEnd - 1] == "/"){
        $(this).attr('href', target.substr(0, urlEnd-1) + target.substr(urlEnd));
    }    
}

答案 2 :(得分:2)

假设你的意思是斜杠,一个可能的解决方案是:

var l = target.length - 1;
if(target.lastIndexOf('/') === l) {
    target = target.substring(0, l);
}

答案 3 :(得分:0)

您可以使用正则表达式来执行此操作:

target.replace(// +((\?|#)。*)?$ /,'$ 1');

哪个应该保留URL末尾的查询字符串或url片段。