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

来源:互联网 发布:淘宝主题怎么换 编辑:程序博客网 时间:2024/05/24 06:15

有些朋友可能对这个标题不是提别理解,这里简单说下:

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);



技术太烂,个人复习用,哪里不对欢迎指正!