我如何在javascript中检索一个字符串的第一个字符的索引重复在一个文本?



我必须在javascript中获得"查询响应"一词的第一个索引;在"output_pacs"中出现多次。这是一个变量,其中分配了内容,即具有多行和多列的文件。

var strutturaIndici=[];
for(var i=0;i< output.length;i++)
{
var indice_primo_carattere= output(i).indexOf("Query Response");
strutturaIndici.push(indice_primo_carattere);
}
logger.debug('StrutturaIndici:' +strutturaIndici);

问题是术语"查询响应"在这个文件中出现多次,每次它出现在这个内容中,我都必须获得这个术语的第一个索引使用这段代码,在控制台中,我无法获得索引,我该怎么办?在控制台中,我得到以下内容:

[2021-01-30 12:53:20,002]  DEBUG  (js-connector:?): StrutturaIndici:

尝试使用:

function getIndexes(searchStr, str) {
let searchStrLen = searchStr.length;
if (searchStrLen == 0) {
return [];
}
let startIndex = 0, index, indices = [];
str = str.toLowerCase();
searchStr = searchStr.toLowerCase();
while ((index = str.indexOf(searchStr, startIndex)) > -1) {
indices.push(index);
startIndex = index + searchStrLen;
}
return indices;
}
let a  = getIndexes("Query Response", "Query Response Happy New Year Query Response Happy Query Response New Year Happy Pongal Query Response New Year");
console.log(a);

创建一个循环,每次调用indexOf,以lastIndex作为搜索下一项的开始。如果indexOf返回-1,则跳出循环。

您可以在这里查看indexOf函数是如何在字符串上定义的

var output_pacs = "test Query Response Query Response hello Query Response"
var indices = [];
var lastIndex = 0;
while (true) {
lastIndex = output_pacs.indexOf("Query Response", lastIndex + 1);
if (lastIndex === -1) {
// No more found
break;
}
indices.push(lastIndex);
}
console.log('StrutturaIndici:' + indices);

相关内容

最新更新