我有很多字符串连接在一起
"[thing 1,thing 2,cat in the hat,Dr. Suese]"
我想遍历此字符串以停止在特定的逗号(给定索引)并在逗号之后和下一个逗号之前立即返回子字符串。问题是我需要在JavaScript中完成它。我认为它会是这样的
function returnSubstring(i,theString){
var j,k = 0;
while(theString.charCodeAt(k) != ','){
while(i > 0){
if (theString.charCodeAt(j) == ','){
i--;
}
j++;
}
k++;
}
return theString.substring(j,k);
}
这应该是什么样的,或者这里有一些语法问题
答案 0 :(得分:2)
您可以split:
var token = "[thing 1,thing 2,cat in the hat,Dr. Suese]"
.slice(1,-1) // remove [ and ]
.split(',')
[2]; // the third token
或者使用正则表达式:
var token = "[thing 1,thing 2,cat in the hat,Dr. Suese]"
.match(/([^\]\[,]+)/g)
[2];
答案 1 :(得分:2)
我想遍历此字符串以停止在特定的逗号(给定索引)并在逗号之后和下一个逗号之前立即返回子字符串。
- >让我们假设逗号的特定索引是8,即第一个逗号索引,你可以这样做:
var givenCommaIndex = 8;
var value = "[thing 1,thing 2,cat in the hat,Dr. Suese]";
var subString = value.substring(givenCommaIndex+1, value.indexOf(",", givenCommaIndex+1));
console.log(subString);
// Output :
"thing 2"
我可以编写如下所示的可重用函数,它不仅适用于逗号,也适用于其他分隔符:
function getSubString(str, delimiter, indexOfDelimiter) {
// TODO : handle specific cases like str is undefined or delimiter is null
return str.substring(indexOfDelimiter+1, str.indexOf(delimiter, indexOfDelimiter+1));
}