javascriptを使用して部分文字列の位置に関する情報を大きな文字列に返す関数が必要です。このようなものがネイティブに存在するかどうかは分かりませんので、私はここでチャンスを取っていきたいと思います。例えば文字列内の部分文字列のインデックスをすべて検索し、それぞれの制限をJavaScriptで返します
、次の入力文字列を持つ:
"dog elephant you me test another test what thesis"
をそして、私は次の配列がある場合:
array("Dog", "test", "not this one", "what the heck", "thesis")
をに最も効率的な方法は何のindexOf入力文字列のこれらすべての要素の位置?関数は、このような情報を用いてオブジェクトを返す有する:
- 「犬」 - 0~3
- 「テスト」の - (
test
が始まる)からではない、この「 - (それが終了する場合)に1」 - ヌル(ない文字列の)
- "一体何" - ヌル(ない文字列の)
- "論文" - (
thesis
が始まる)から(それが終わるところ)
誰にも分かりますか? Tyvm!
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);
私はあなたが結果が見えるようにしたいものだけを推測することができます。これは大文字と小文字が区別されること
ループ、 '.indexOf()'、および数学(_ "(終了するところ)" _ = 'index + length') – Andreas
あなたが求めているものは100%ではありません。あなたは、文字列と文字列の配列をとって、配列内の各項目の文字列を検索し、それらのインデックスのオブジェクトまたはnullを返すjavascript関数が必要ですか?出力オブジェクトの形式はどのようにすべきですか?それは辞書ですか? 2つの配列? – toshiomagic