【问题标题】:jQuery to parse our a part of a url pathjQuery 来解析我们的 url 路径的一部分
【发布时间】:2011-08-01 03:55:16
【问题描述】:

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

例如,一个 url 是

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

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

我有这个提醒我 /community/ 之后的内容,但随后 url 变为 NaN 并且链接不起作用。我认为我没有走在正确的轨道上。

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

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

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

}

想法?

TIA。

【问题讨论】:

  • 抱歉,我需要将变量设置为等于该 url 中 /community/ 之后的任何文件夹路径。
  • 我根本没有得到this.href*= 的东西。这是什么意思?
  • jquery 选择器,如果此 href 属性包含 example.com/community
  • 正如 OP 所问,他只是有做事的想法。所以我们必须给他的想法一个实现。
  • 我认为$(this.href*='http://example.com/community/') 应该是$('[href*="http://example.com/community/"]')... /me shrugs

标签: javascript jquery html regex


【解决方案1】:

您可以使用正则表达式获取“/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/

【讨论】:

  • 那行得通,但如果我想返回任何东西,而不是任何东西/asdf:jsfiddle.net/BL4jm/2 - 2 分钟前编辑
  • @ben - 我用第二个选项更新了我的答案,只得到“随便”部分。
  • 如果href中的字符串与该模式匹配,这对我没有帮助,但我有一些可以通过设置category =“不匹配”来工作,然后如果匹配则覆盖它。谢谢老兄!
  • @ben - 如果你想在不匹配时执行代码,那么只需在 if 的末尾添加一个 else。
【解决方案2】:

当您执行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];
}

【讨论】:

  • @ben:只需用“/”再次分割并返回第一个结果。看我的回答。
猜你喜欢
  • 2023-01-24
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-25
相关资源
最近更新 更多