使用JavaScript / Jquery从URL中提取特定文件名

时间:2012-01-05 20:26:55

标签: javascript regex

我试图从URL中提取一个特定的文件名,我看过帖子,但没有任何东西可以回答我需要的问题。我需要一个Javascript或Jquery,它可以从:

中提取文件名(“Test1”)
http://sharepoint/sites/Jarrod/DurangoTest/SitePages/Home.aspx?RootFolder=%2Fsites%2FJarrod%2FDurangoTest%2FShared%20Documents%2FTest1&FolderCTID=0x01200094D5A58A4F099E49BE1A8BA2F7DE9E0D&View={653454F3-1CE4-48C1-967C-5BA6023D349E}

2 个答案:

答案 0 :(得分:0)

您可以从window.location对象获取类似的网址信息。试试这个

params = window.location.search.split(/&/)

for (var i=0; i < params.length; i++) {
  if (params[i].match(/^\??RootFolder=/)){
    paths = params[i].split(/\//);
    filename = paths[paths.length-1];
    break;
  }
};

答案 1 :(得分:0)

@Jonathan走在正确的轨道上。看起来您正在寻找从查询字符串中解析值而不是查找所请求文件的名称。您首先需要从查询字符串中获取值。您可以使用window.location.search从URL获取完整的查询字符串。然后解析查询字符串以找到所需的值。这是一个JS函数:

// parses the query string provided and returns the value
function GetQueryVariable(query, name) {
    if (query.indexOf("?") == 0) { query = query.substr(1); }
    var pairs = query.split("&");
    for (var i = 0; i < pairs.length; i++) {
        var pair = pairs[i].split("=");
        if (pair[0] == name) {
            return pair[1];
        }
    }
    return "";
}

然后您已准备好使用Jonathan的建议解析该值以获取文件的名称。您可能必须进行一些转义(使用JS方法unescape)将查询字符串中的值转换为可以更容易解析的“实际”值。