Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的字符串遍历_Javascript_Function_Substring_Performance - Fatal编程技术网

javascript中的字符串遍历

javascript中的字符串遍历,javascript,function,substring,performance,Javascript,Function,Substring,Performance,我有许多串连接在一起 "[thing 1,thing 2,cat in the hat,Dr. Suese]" 我想遍历这个字符串,在一个特定的逗号(给定一个索引)处停止,并在逗号之后和下一个逗号之前立即返回子字符串。问题是我需要用JavaScript来做。我想应该是这样的 function returnSubstring(i,theString){ var j,k = 0; while(theString.charCodeAt(k) != ','){ whil

我有许多串连接在一起

"[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);
}
这是它应该看起来的样子还是这里有一些语法问题

您可以:

或者使用正则表达式:

var token = "[thing 1,thing 2,cat in the hat,Dr. Suese]"
    .match(/([^\]\[,]+)/g)
    [2];
你可以:

或者使用正则表达式:

var token = "[thing 1,thing 2,cat in the hat,Dr. Suese]"
    .match(/([^\]\[,]+)/g)
    [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));
}
我想遍历这个字符串,在一个特定的逗号(给定一个索引)处停止,并在逗号之后和下一个逗号之前立即返回子字符串

-->假设接受逗号的具体索引为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));
}

您的数据只能采用这种格式吗?为什么不使用JSON来序列化数据?您是指逗号之间的逗号索引(即第二个逗号)还是字符串中的逗号索引(即第二十个字符后的第一个逗号)?您的数据只能采用这种格式吗?为什么不使用JSON来序列化数据?你是指逗号之间的逗号索引(即第二个逗号)还是字符串中的逗号索引(即第二十个字符后的第一个逗号)?他想输入逗号的索引。@thefourtheye这对我来说不清楚。我在评论中加了一个问题。@foureye我不好。一次性错误
(j+1,j+k-1)
我想他想输入逗号的索引。@of theye这对我来说不清楚。我在评论中加了一个问题。@foureye我不好。一次性错误<代码>(j+1,j+k-1)我想