jQuery解析我们的url路径的一部分

时间:2011-08-01 03:55:17

标签: javascript jquery html regex

我需要解析长网址并设置一个等于路径中/folders/之一的变量(类别)。

例如,

的网址

http://example.com/community/home/whatever.html

我需要将变量设置为等于该网址中/home/之后的任何文件夹路径。

我有这个提醒我在/ community /之后发生的事情,但是然后网址转向NaN并且该链接无法正常工作。我想我不是在正确的轨道上。

if ($(this.href*='http://example.com/community/')){

  var category = url.split("community/");

  alert(category[category.length - 1]);

}

思想?

TIA。

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式获取“/ community /”之后的所有内容:

var url = "http://www.example.com/community/whatever";
var category = "";
var matches = url.match(/\/community\/(.*)$/);
if (matches) {
    category = matches[1];   // "whatever"
}

这里的工作示例:http://jsfiddle.net/jfriend00/BL4jm/

如果你想在社区之后只获得下一个路径段而在该段后没有任何内容,那么你可以使用它:

var url = "http://www.example.com/community/whatever/more";
var category = "";
var matches = url.match(/\/community\/([^\/]+)/);
if (matches) {
    category = matches[1];    // "whatever"
} else {
    // no match for the category
}

这里的工作示例:http://jsfiddle.net/jfriend00/vrvbT/

答案 1 :(得分:0)

当你this.href*=进行乘法时,这就是为什么你得到的不是数字。它将this.href乘以字符串,并将其分配给href

如果你想测试url是否以该字符串开头,你可以这样做,不需要jQuery:

var start = 'http://example.com/community/';
if (url.substring(0, start.length) === start)){
  var category = url.split("community/");
  var lastPart = category[category.length - 1];
  return lastPart.split("/")[0];
}