在Javascript中的indexOf无法正常工作

Pro*_*eus -3 javascript angularjs

如果这些可能的字符串我想要获取页码:

$scope.projects.next 可以等于......

  • string 1)/ api/project /?currentuser = false&page = 2
  • string 2)/ api/project /?page = 2

我试过这个:

$scope.projects.next.split('=')[1].indexOf("page")
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于字符串2.如何更改此项以确保它找到页码,无论可以添加哪个位置或将来的参数?

我也尝试过:

$scope.projects.next.indexOf("page")
Run Code Online (Sandbox Code Playgroud)

但这52不知道为什么.

Thi*_*ala 5

你可以使用正则表达式:

/page=([0-9]+)/.exec($scope.projects.next)[1]
Run Code Online (Sandbox Code Playgroud)

它使用带有捕获组(位())的正则表达式作为页码,并在之后捕获一个或多个数字page=.结果是一个数组,其中第一个元素是整个匹配,第二个元素是捕获组(这就是我们[1]最后的原因).

  • +1 - 总是最好*解释*你做了什么以及显示执行代码.我添加了一点,但这是一个很好的习惯. (2认同)