我有两种网址类型,(TYPE A)
/items
或/ items / XXXX,尾随编号(TYPE B)
/items/187
/items/12831
我想知道如何检测URL是A型还是B型
if (TYPE A) ... else if (TYPE B) ....
有关实现这一目标的任何建议吗?我需要正则表达式吗?
感谢
答案 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/'))
{
}