我有一個字符串如下循環分割使用JQuery - 通過串
var str = "foobar~~some example text~~this is a string, foobar1~~some example
text1~~this is a string1";
我需要通過這個字符串循環,並得到文本「一些示例文本」,「一些例子text1」中
任何人都可以讓我知道如何循環。
我有一個字符串如下循環分割使用JQuery - 通過串
var str = "foobar~~some example text~~this is a string, foobar1~~some example
text1~~this is a string1";
我需要通過這個字符串循環,並得到文本「一些示例文本」,「一些例子text1」中
任何人都可以讓我知道如何循環。
您可以使用.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)
})
我會推薦使用捕獲組和一點輔助方法:
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}`))
我嘗試這樣做,得到它完成。
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]);
}
}
感謝您的所有快速回復。
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的索引,因爲我假設期望的字符串將始終在那個位置。
請a)格式化問題b)顯示您嘗試過的內容 –
您想要檢查搜索文本是否存在或者您想要在字符串中的位置? –
@LouysPatriceBessette,請舉例... –