js字符串,從兩個公共標籤之間截取出字符串,可容許多個

方法1:ids 爲字符串html

getIds(ids){

let tag1="movies/", tag2=".html";

ids = ids.split(tag1);

let arr=[]

for(let i=1;i<ids.length;i++){

let a=ids[i].split(tag2);

if(a[0]){

arr.push(a[0]);

}
return arr;
}

方法2(還沒測過): ss爲字符串,tag1爲左邊標籤,tag1Length爲左邊標籤的長度,tag2爲右邊標籤,tag2Length爲右邊標籤的長度。code

getIds(ss,tag1,tag2){
    var a=[], b=[], res=[], mm=ss, nn=0, tag1Len=tag1.length,tab2Len=tag2.length; 
    for (var i = 0;i<4 ; i++) {
         if (mm.indexOf(tag1)==-1) {
            a.push(999999);
            break;
        };
        a[i]=nn+tab1Len+mm.indexOf(tag1);
        nn=a[i];
        mm=ss.substring(a[i]);
     };
     mm=ss;
     nn=0;
     for (var i = 0;i<4 ; i++) {
        if (mm.indexOf(tag2)==-1) {
            b.push(999999);
            break;
        };
        b[i]=nn+tab2Len+mm.indexOf(tag2);
        nn=b[i];
        mm=ss.substring(b[i]);
     };
     for(var i=j=0;i<= a.length && j<=b.length;) {
        if(a[i+1]<b[j]){
            a.splice(i+1,1);
            b.splice(j,1);            
        }else if(a[i+1]>b[j]){
            res.push(ss.substring(a[i]-tab1Len,b[j]));
            a.splice(i,1);
            b.splice(j,1);
        }else{
          break;
        }
     }
     return res;
  }