对于此网址
"http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx"
尝试在企业/网站之后提取所有内容。
我想要"/TestSubSite/objstrat/CultureConnection/Pages/default.aspx"
我可以得到这样的文件名:
var filename = parenturl.substring(parenturl.lastIndexOf("/") + );
但不确定如何从中间提取..
答案 0 :(得分:1)
使用lastIndexOf
对于片段或查询中/
的任何URI引用都将失败,如http://example.com/foo/bar#/baz/boo
。
像Google Closure's Uri module这样的图书馆可以轻松实现这一目标。
new goog.Uri(parenturl).getPath()
如果您选择的库没有URI支持,那么http://www.ietf.org/rfc/rfc3986.txt附录B建议
var urlRegex = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
var path = decodeURIComponent(urlRegex.exec(parenturl)[5]);
将为您提供路径部分。
一旦你有了这条道路,你就可以通过做类似
之类的事情剥离/sites/
部分
var pathSuffix = path.replace(/^\/sites\//, '/');
答案 1 :(得分:1)
我喜欢带有DOM元素的Javascript。
var link = document.createElement('a');
link.href = "http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx";
link.protocol;
link.hostname;
link.port;
link.pathname;
link.search;
link.hash;
link.host;
link.pathname.replace(/^\/sites/,"") // "/TestSubSite/objstrat/CultureConnection/Pages/default.aspx"
答案 2 :(得分:0)
最简单的方法可能是使用javascript Split()函数并从结果数组中重建字符串(省略前几个项目)
var parenturl = "http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx";
var tokens = parenturl.split("/");
for(var i=0;i<tokens .length;i++)
{
console.log(tokens [i]);
}
答案 3 :(得分:0)
如何:
var parenturl = "http://testsite/sites/TestSubSite/objstrat/CultureConnection/Pages/default.aspx";
var filename = parenturl.match(/\/sites(.*)$/)[1];
alert(filename);