jquery location.pathname.split(“/”)返回空的第一个和最后一个元素

时间:2013-09-12 11:08:20

标签: jquery arrays

我正在使用var url = location.pathname.split("/")分割网址。

结果的第一个和最后一个元素始终为空。任何人都可以解释为什么会这样吗?

谢谢。

5 个答案:

答案 0 :(得分:1)

好吧,请考虑以下网址http://stackoverflow.com/questions/18762585/jquery-location-pathname-split-returning-empty-first-and-last-elements/。路径名称为/questions/18762585/jquery-location-pathname-split-returning-empty-first-and-last-elements/,在第一个“/”之前和之后没有任何内容“/”。

["", "questions", "18762585", 
 "jquery-location-pathname-split-returning-empty-first-and-last-elements", 
 "18762683", ""]

答案 1 :(得分:1)

如果string以split delimitr开头,则first元素为空,因为/之前没有任何内容。与字符串中的最后一个/相同 - 如果之后没有任何内容,它会在结果数组中为您提供空元素。

示例:

'/foo/bar/'.split('/')    // ["", "foo", "bar", ""]
'foo/bar/'.split('/')     // ["foo", "bar", ""]
'foo/bar'.split('/')      // ["foo", "bar"]

答案 2 :(得分:1)

location.pathname返回URL的路径名部分。换句话说,它返回没有主机且没有查询字符串的路径。

,“http://www.stackoverflow.com/question/1/50/hello?answers=yes”的路径名是“/ question / 1/50 / hello”。

因此,您可能会对看似“http://site.com/a/b/c/”的网址提出疑问,该网址会提供路径名“/ a / b / c /”。通过“/”拆分,将返回由“/”分隔的字符串。在第一个和最后一个之前没有任何内容,所以你将获得第一个和最后一个标记的空字符串。

答案 3 :(得分:1)

因为路径以/开头,并且在此之前有一个空字符串。 如果path也以/结尾,那么后面还会有另一个空字符串。

这与jQuery没有任何关系,jQuery是一种简单的JavaScript行为。 如果你想摆脱,你可以删除location.pathname开头/结尾的'/'字符,或者只是忽略数组中的空字符串。

答案 4 :(得分:1)

如果您的测试打印路径名,这可能很清楚。它通常以'/'开头。如果在最后一个'/'之后最后没有任何东西,那么你会得到这样的结果。