jQuery / JS - 检测/匹配URL字符串以确定其类型

时间:2010-12-22 03:23:03

标签: javascript jquery

我有两种网址类型,(TYPE A)

/items

或/ items / XXXX,尾随编号(TYPE B)

/items/187
/items/12831

我想知道如何检测URL是A型还是B型

if (TYPE A) ... else if (TYPE B) ....

有关实现这一目标的任何建议吗?我需要正则表达式吗?

感谢

4 个答案:

答案 0 :(得分:2)

您可以使用正则表达式进行检查,例如:

if(/\/items\/\d+/.test(url)) {
  //type B
} else if (/\/items/.test(url)) {
  //type A
}

首先检查号码版本,如果失败则检查至少/items ...如果你确定它是一个或另一个你可以不用第二个if而只是使用else

答案 1 :(得分:1)

您可以在pathname上拆分/,并在数组中的最后一项上执行parseInt()

if( parseInt( location.pathname.split('/').pop() ) ) {
    // was a successful number, so type B
} else {
    // was NaN, so type A
}

如果成功解析为数字,则为B类型,否则键入A.

请注意,如果您拥有该号码的号码0,则会失败。如果0有可能,那么您只需将1添加到该数字。

答案 2 :(得分:1)

if (type == '/items'){
  // Type A
} else if (type.match('/\/items\/[0-9]+/')){
  //Type B
} else {
  //Not either of the two
}

你可以匹配第一部分的字符串,第二部分可能需要正则表达式,如果你需要第三个条件,否则,它是

if (type == '/items'){
  //A
} else {
  //B, (or anything else)
}

答案 3 :(得分:0)

// /items/1233
if (url.match('\\/items/\\d+'))
{

}
// /items/
else if (url.match('\\/items/'))
{

}