2017-09-02 55 views
0

我有一個字符串如下循環分割使用JQuery - 通過串

var str = "foobar~~some example text~~this is a string, foobar1~~some example 
text1~~this is a string1"; 

我需要通過這個字符串循環,並得到文本「一些示例文本」,「一些例子text1」中

任何人都可以讓我知道如何循環。

+0

請a)格式化問題b)顯示您嘗試過的內容 –

+0

您想要檢查搜索文本是否存在或者您想要在字符串中的位置? –

+0

@LouysPatriceBessette,請舉例... –

回答

2

您可以使用.match()與以下正則表達式:

/~~[^~]+~~/g 

爲了循環可能會導致陣列上使用.forEach()

reatVal.forEach(function(ele, idx) { 
    console.log('element n.: ' + idx + ' value: ' + ele) 
}) 

var str = "foobar~~some example text~~this is a string, foobar1~~some example text1~~this is a string1"; 
 
var retVal = str.match(/~~[^~]+~~/g).map(function(ele, idx) { 
 
    return ele.replace(/~~/g, ''); 
 
}); 
 

 

 
console.log('retVal is the following array: ' + retVal); 
 

 
retVal.forEach(function(ele, idx) { 
 
    console.log('element n.: ' + idx + ' value: ' + ele) 
 
})

0

我會推薦使用捕獲組和一點輔助方法:

String.prototype.getCapturingGroups = function(re){ 
 
    if(re instanceof RegExp){ 
 
    let groups_contents = []; 
 
    this.replace(re, function(str, match){ 
 
     groups_contents.push(match); 
 
    }); 
 
    return groups_contents; 
 
    } 
 
    return []; 
 
} 
 

 
var str = "foobar~~some example text~~this is a string, foobar1~~some example text1~~this is a string1"; 
 
var regex = /\~\~([^~]+)\~\~/g; 
 
var content_arr = str.getCapturingGroups(regex); 
 

 
content_arr.forEach((e,i)=>console.log(`n°${i} is : ${e}`))

0

我嘗試這樣做,得到它完成。

var arr = str.split(','); 
    for (var i = 0; i < arr.length; i++) { 
     var onetext = arr[i]; 
     var twotext = onetext.split('~~'); 
     for (var j =0; j< twotext.length; j++) { 
      console.log(twotext[j]); 
     } 
    } 

感謝您的所有快速回復。

0
var str = "foobar~~some example text~~this is a string, 
foobar1~~some example text1~~this is a string1"; 
    var strArr = str.split(','); 
    var finalStrArr = []; 
    for(var i=0; i<strArr.length; i++) { 
     var finalStr = strArr[i].split('~~'); 
     finalStrArr.push(finalStr[1]); 
    }; 

只有字符串僅以該格式出現時,此代碼纔有效。我的意思是上面的代碼會給出字符後的第一個字符串~~。
我把finalStrArr.push(finalStr[1]);我得到1的索引,因爲我假設期望的字符串將始終在那個位置。