javascript:获取网址路径

时间:2010-12-21 08:44:59

标签: javascript regex url

var url = 'http://domain.com/file.php?id=1';

var url = 'https://domain.us/file.php?id=1'

var url = 'domain.de/file.php?id=1';

var url = 'subdomain.domain.com/file.php?id=1'

从上述任意一个网址中我想获得仅路径,在上面的情况中:

var path = '/file.php?id=1';

4 个答案:

答案 0 :(得分:42)

可以用正则表达式来做,但使用这些原生属性可以说是最好的方法。

var url = 'subdomain.domain.com/file.php?id=1',
    a = document.createElement('a');

a.href = 'http://' + url;
var path = a.pathname + a.search; // /file.php?id=1

See it on jsFiddle.net

答案 1 :(得分:7)

在Douglas Crockford的书“JavaScript:The Good Parts”中,有一个用于检索所有url部分的正则表达式。它位于第66页,您可以在此处查看:http://books.google.ch/books?id=PXa2bby0oQ0C&pg=PA66

您可以从此处复制和粘贴:http://www.coderholic.com/javascript-the-good-parts/

答案 2 :(得分:2)

这个版本是正则表达式。试试这个:

var splittedURL = url.split(/\/+/g);
var path = "/"+splittedURL[splittedURL.length-1];

答案 3 :(得分:0)

使用string.lastIndexOf(searchstring,start)而不是正则表达式。然后检查索引是否在边界内,并从最后一个斜杠到字符串的结尾获取子字符串。