您的位置:首页 > Web前端 > JavaScript

js检索字符串时,获取当前检索内容的全部索引

2017-10-16 13:21 337 查看
有些朋友可能对这个标题不是提别理解,这里简单说下:

var  data="000090002000056054000900909090909";

比如这个字符串,我想要获取数字9在这串字符里面的位置,正常情况下用IndexOf("9")就可以,但是有个问题,这样只能截取出一个,也就是第一个。

但是后面还有几个9我想拿到所有9的位置。

这里就要说到我今天写的一个效果,因为各种恶心的写法,导致我必须在一串地址当中截取三个参数。

内容是这样的:

var endTxt2="/635/undefined undefined/14/0";

我需要拿到这里面的三个参数,635,14,和最后的0,这里说明下,参数随时会变,所以我的思路是,拿到他们三个参数前面的斜杠"/",然后通过字符串截取拿到斜杠之间的内容。下面是代码:

for(var k=0;k<endTxt2.length;k++){

    var nane=endTxt2.indexOf("/",k);//从0开始搜索

    if(nane===-1){//没有找到,退出循环

      break;

    }else{

      data.push(nane);

      k+=1;

    }

}

console.log("打印最后的数组---------",data);

这里打印出来结果是:



很明显,有重复,不是我想要的,接下来去重:

for(var g=0;g<data.length;g++){

   if(data2.indexOf(data[g]) < 0 ){

      data2.push(data[g]);

   }

}

console.log("打印去重后的索引数组------",data2);



这次正确了,然后去掉斜杠,同时截取,打印出来看看:

var shoppingID=endTxt2.substring(data2[0],data2[1]);

var shoppingID=shoppingID.replace("/","");

var shoppingToken=endTxt2.substring(data2[1],data2[2]);

var shoppingToken=shoppingToken.replace("/","");

var shoppingDetailsID=endTxt2.substring(data2[2],data2[3]);

var shoppingDetailsID=shoppingDetailsID.replace("/","");

var shoppingNumberID=endTxt2.substring(data2[3]);

var shoppingNumberID=shoppingNumberID.replace("/","");

console.log("打印截取的第1个字符串-------",shoppingID);

console.log("打印截取的第2个字符串-------",shoppingDetailsID);

console.log("打印截取的第3个字符串-------",shoppingToken);

console.log("打印截取的第4个字符串-------",shoppingNumberID);



技术太烂,个人复习用,哪里不对欢迎指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: