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';
答案 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
答案 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)而不是正则表达式。然后检查索引是否在边界内,并从最后一个斜杠到字符串的结尾获取子字符串。