2012-01-02 48 views
0

我收到类似document.links[0].href的锚对象的网址。我想从这个字符串中删除搜索部分(“后面的部分?'符号”)。我知道我可以使用这个正则表达式。有没有其他有效的方法来做到这一点?删除网址的搜索部分

回答

1
var a = //my string 
a = a.substr(0, a.indexOf('?')); 

刚刚获得子串直到第一个?;如果由于某种原因,你有2 ?,第二个可能是在查询路径,并将被删除无论如何...

0

一种方法是将其拆分到“?”字符。

var url = document.links[0].href; 
var base = url.split("?")[0]; 

应该会更快,但当然,如果你有一些理由二,你可能会遇到麻烦?记者在URL中。

+1

这将工作。但我非常关心表现。我将不得不在600毫秒之前处理数百个链接。大约需要550毫秒。所以这样做会很麻烦。 – 2012-01-02 19:24:42

+0

@Selvaraj M A - 你有基准吗?我怀疑你会发现大部分时间都花在了DOM上,而不是字符串处理本身。 – Quentin 2012-01-02 19:31:42

-1

你可以使用这个搜索找到部分:

document.location.search 

,然后从document.location.href更换或使用document.location.host和document.location.pathname你的目的

+1

这不会工作。因为我从一个锚对象(这是一个字符串)获取URL。不是从文件。 – 2012-01-02 19:23:00