如何查找字符串中所有出现的字符。例如,字符串是:“Hello world”,用户现在想要找到存在“L”的字符串的索引。在示例 2,3 和 9 中。如何在 java-script/jquery 中找到这样的索引?
问问题
231 次
5 回答
1
例如,如果您想找到所有 b,然后将它们写入文档 -
var foo = "foo bar baz bat";
var pos = foo.indexOf("b");
while(pos > -1) {
document.write(pos + "<br />");
pos = foo.indexOf("b", pos+1);
}
输出:
4
8
12
于 2012-11-27T17:16:39.153 回答
1
这是一些伪代码。这就是您在尝试开始编码之前应该如何尝试解决问题的逻辑。
var indeces = {};
for(each character in string)
if(character == characterImLookingFor)
indeces.add(currentIndex);
return indeces;
于 2012-11-27T17:16:51.180 回答
1
您可以从此答案尝试以下代码:
function getIndicesOf(searchStr, str, caseSensitive) {
var startIndex = 0, searchStrLen = searchStr.length;
var index, indices = [];
if (!caseSensitive) {
str = str.toLowerCase();
searchStr = searchStr.toLowerCase();
}
while ((index = str.indexOf(searchStr, startIndex)) > -1) {
indices.push(index);
startIndex = index + searchStrLen;
}
return indices;
}
于 2012-11-27T17:19:58.637 回答
1
function getIndexes(str,char) {
var index = str.indexOf(char);
var indexes = [];
while(index != -1) {
indexes.push(index);
index = str.indexOf(char,index+1);
}
return indexes;
}
用法:
getIndexes("Hello world","l"); // returns [2,3,9]
于 2012-11-27T17:27:37.053 回答
0
您还可以使用正则表达式来实现这一点:
var str = "Give me indexes of i in this string";
var regex = /i/gi, result;
while ((result = regex.exec(str)) ) {
console.log(result.index);
}
//Output: 1, 8, 19, 21, 26, 32
于 2012-11-27T17:24:37.667 回答