URL解析与JavaScript或jQuery

URL Parsing with JavaScript or jQuery

本文关键字:jQuery JavaScript URL      更新时间:2023-09-26

我需要一个用JavaScript编写的URL解析器,它将像下面描述的那样工作:

假设你有这个URL http://www.somedomain.com/a/b/c

parseURL(n)函数将按如下方式工作:

var paramA = parseURL(1) // Sets paramA to "a"
var paramB = parseURL(2) // Sets paramB to "b"
var paramC = parseURL(3) // Sets paramC to "c"
var paramD = parseURL(4) // Sets paramD to null (because the path does not ripple down to d)

还请注意,如果我传递这个URL http://www.somedomain.com/a/b/c/(请注意,我在URL的末尾添加了一个反斜杠),那么函数仍然会以同样的方式工作。

这个函数应该在任何长度的URL上工作,所以它应该在一个更长的URL上工作,就像这个:http://www.somedomain.com/a/b/c/d/e/。对于这个URL。我们可以到parseURL(5),它应该返回"e",但parseURL(6)parseURL(7)都将返回null。

谢谢。

function parseURL(i) {
   var t = document.location.pathname.split('/');
   return i < t.length ? t[i] : null;
}

正如VisioN所指出的,要处理结束的/,这个版本会更好:

function parseURL(i) {
   var t = document.location.pathname.replace(/'/+$/, "").split('/');
   return i < t.length ? t[i] : null;
}

这是一个接受url字符串并返回数组的函数。它按照您所描述的方式进行索引,并添加了主机名索引0。不确定你是否想要这个或者dystroy写了什么来解析你当前的URL

对于parseURL("http://www.somedomain.com/a/b/c/")你将得到一个数组

urlParts[0] = "www.somedomain.com"
urlParts[1] = "a"
urlParts[2] = "b"
urlParts[3] = "c"

<代码>

function parseURL(url){
   //strip off the http://
  if(url.indexOf("http://") != -1){
   url = url.slice(7);
  }
   //split the url into sections
   var urlParts = url.split("/");
   return urlParts;
}

您可以使用URI.js(更具体地说是segment方法),这是一个非常好的用于URI解析的javascript库。