var target = $(".target-text"),
relation = ['spun gold', 'gold', 'apple'],
len = relation;
for (var i=0; i<len; i++) {
var e = relation[i],
re = new RegExp(e,"ig");
if (e.length > 0) {
target.html( target.html().replace(re, "<span class='hit'>$&</span>") );
}
};
検索された文字はタグで囲まれています。
現時点では問題があります。
問題は、検索の順番が変わることです。
aのように['spun gold', 'gold', 'apple']
大丈夫です
が、aのように['gold', 'spun gold', 'apple']
ngです。
gold => <span class='hit'>gold</span>
最初に実行すると、
spun gold => <span class='hit'>spun gold</span>
うまくいきません。
(初めてgold
に変更さ<span class='hit'>gold</span>
れたので。)
より良い方法はありますか?
編集:
条件として、検索は英語だけではありません。