我需要一个函数,它可以使用javascript返回更大字符串中子字符串位置的信息。我不知道这样的事情是否存在,所以我想抓住机会。
例如,具有以下输入字符串:
"dog elephant you me test another test what thesis"
如果我有以下数组:
array("Dog", "test", "not this one", "what the heck", "thesis")
indexOf 输入字符串中所有这些元素的位置的最有效方法是什么?让函数返回一个包含以下信息的对象:
test
开始)到(结束时)thesis
开始)到(结束)有没有人有任何想法? Tyvm!
答案 0 :(得分:0)
请注意,这是区分大小写的:
var str = "dog elephant you me test another test what thesis";
var words = ["dog", "test", "not this one", "what the heck", "thesis"];
var indices = words.map(function (word) {
var start = str.indexOf(word);
if (start === -1) {
return null;
}
return { word, start, end: start + word.length };
});
console.log(indices);

我只能猜出你想要的结果是什么样的。我的解决方案返回一个对象数组。对象具有word
属性,其中包含有问题的单词,起始索引的start
属性和结束索引的end
属性。如果找不到该单词,则该对象将替换为null
。