我需要解析长网址并设置一个等于路径中/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。
答案 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];
}