摆脱url href中的字符

时间:2012-12-11 14:35:15

标签: javascript jquery href

我有这样的链接:

http://nl.wikipedia.org/wiki/Alexandra_Stan&sa=U&ei=UULHUIIdzPnhBOKMgPgJ&ved=0CCIQFjAA&usg=AFQjCNGyCikDkoZMnnuqGo6vjMQ6b5lZkw

我想摆脱'&'开头的一切所以这会给我一个干净的网址:

http://nl.wikipedia.org/wiki/Alexandra_Stan

我知道如何像这样替换href:

$('a').each(function() {
      $(this).attr("href", function(index, old) {
            return old.replace("something", "something else");
      });
});

但我无法弄清楚如何从某个角色开始摆脱一切。

3 个答案:

答案 0 :(得分:10)

您可以使用substr()indexOf()获取网址的特定部分,从URL字符串的开头直到遇到第一个&符号。

  var href = $(this).attr('href'); 
  var url = href.substr(0, href.indexOf('&')); 

答案 1 :(得分:1)

请改用String.prototype.split。它将逐个字符串拆分为一个数组。最重要的部分是,如果缺少该字符(在您的情况下,'&'),它将把整个字符串放在第一个数组索引中。

// String.prototype.indexOf:
var href = 'http://www.noAmpersandHere.com/',
    url  = href.substr(0, href.indexOf('&'));  // ''

// String.prototype.split:    
var href = 'http://www.noAmpersandHere.com/',
    url  = href.split('&');  // ['http://www.noAmpersandHere.com/']
    url  = url[0];  // 'http://www.noAmpersandHere.com/'

答案 2 :(得分:0)

首先:请注意参数列表以?开头,而不是&

您正在处理的锚元素已经解析并正确划分了整个网址。 您只需要访问正确的锚属性:

https://developer.mozilla.org/en-US/docs/DOM/HTMLAnchorElement