JavaScript中的indexOf无法正常工作
indexOf in Javascript not working how it should
如果这些可能的字符串,我想把页码拿出来:
$scope.projects.next
可以等于...
- 字符串 1(/api/project/?currentuser=false&page=2
- 字符串 2(/api/project/?page=2
我试过这个:
$scope.projects.next.split('=')[1].indexOf("page")
但是,这仅适用于字符串 2。我如何更改它以确保它找到页码,无论可以添加什么位置或将来的参数?
我也尝试过:
$scope.projects.next.indexOf("page")
但这52
不知道为什么。
您可以使用正则表达式:
/page=([0-9]+)/.exec($scope.projects.next)[1]
它使用带有捕获组(()
中的位(的正则表达式作为页码,并在 page=
之后捕获一个或多个数字。结果是一个数组,其中第一个元素是整个匹配项,第二个元素是捕获组(这就是为什么我们在末尾有[1]
(。
请看这里:http://jsbin.com/gizalo/1/edit
从字符串中获取参数的函数
function getParameterByName(name, string) {
name = name.replace(/['[]/, "''[").replace(/[']]/, "'']");
var regex = new RegExp("[''?&]" + name + "=([^&#]*)"),
results = regex.exec(string);
return results == null ? "" : decodeURIComponent(results[1].replace(/'+/g, " "));
}
控制器
app.controller('firstCtrl', function($scope){
var stringa="/api/project/?currentuser=false&page=2";
var stringb="/api/project/?page=2";
$scope.a = getParameterByName('page', stringa);
$scope.b = getParameterByName('page', stringb);
});
问题是在第一个 url 中有两个 = 符号,因此您的索引在第一个 url 上将出 1
$scope.projects.next.split('page='([1]
这与 AngularJS 完全无关。但它也很简单,所以为什么不回答。对字符进行拆分会在该字符的每个实例上拆分。你的顶字符串最终会['/api/project/?currentuser', 'false&page', '2']
,所以获得[1]('page')
的位置是没有用的。改为将其拆分为?
。
var start = $scope.projects.next.indexOf("page=");
var end = $scope.projects.next.indexOf("&");
var page;
if(end == -1) {
page = $scope.projects.next.substring(start+5);
} else {
page = $scope.projects.next.substring(start+5, end);
}
这也适用于 ?page=17&test=2
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)