www.google.com/page/2
如果路径如上所述很容易,我们可以使用
path.substring(10, path.length);
但如果网址是这样的话
www.google.com/page/2
www.google.com/page/233
www.google.com/page/2/more/here/
如何获取页码?我的意思是2。
答案 0 :(得分:2)
也许尝试使用regular expression。对于String.match()的 你可以像这样使用它: 两个包装"www.google.com/page/233/more/here?userid=913".match(/\d+/g);
// returns an array with every match:
["233","913"]
// In case you directly want your answer, you can just append the index:
"www.google.com/page/233/more/here?userid=913".match(/\d+/g)[0];
"233"
/
是表达式的分隔符,\d
选择每个数字,+
表示它将匹配每个出现的数字,大于一个(所以它匹配1
,233
,2512
,但没有空字符串)。最后,g
最后是一个修饰符,它将执行global search - 但它不一定需要,因为你只需要第一次出现。
答案 1 :(得分:1)
不使用正则表达式
str = 'www.google.com/page/2/userId/433'; // (you can put any page number you want instead of 2)
pageNumber = str.split('/')[2];
alert(pageNumber);
它会将字符串剪切成一个数组,用于每个' /'有,[2]
我们得到第二部分,这是' page /'之后的所有内容。但在下一个' /'之前。
就目前情况而言,我认为我的解决方案是最好的,因为如果您的网址变为www.google.com/page/2/index/3' ;,之前发布的所有正则表达式打印3或2和3,而我将始终打印页面ID。 但我确信有可能做出一个很好的正则表达式来完成这项工作。
答案 2 :(得分:0)
使用一点正则表达式:
var url = 'www.google.com/page/2/more/here/'
var match = url.match(/^.+\/.+\/([0-9]+)/);
alert(match[1]);
答案 3 :(得分:-1)
var parts = path.split('/');
for(var i=0; i<parts.length; i++) {
if(parts[i] == 'page'){
alert(parts[i+1]);
}
}