現在、部分文字列検索を実装しています。このアルゴリズムから、各要素が[startPos, endPos]
の形式であるサブストリングの出現位置の配列を得る。複数の出現時の文字列の強調表示
例えば(javascript配列で):
[[1,3], [8,10], [15,18]]
とハイライトする文字列は次のとおりです。
ACGATCGATCGGATCGAGCGATCGAGCGATCGAT
は、私は元の文字列を(<b>
を使用してHTMLに)ハイライトしたい、それがするので、 1〜3位、8〜10位、15〜18位などの文字列をハイライトまたは太字で表示します(0で索引付けされます)。
function hilightAtPositions(text, posArray) {
var startPos, endPos;
var startTag = "<b>";
var endTag = "</b>";
var hilightedText = "";
for (var i = 0; i < posArray.length; i++) {
startPos = posArray[i][0];
endPos = posArray[i][1];
hilightedText = [text.slice(0, startPos), startTag, text.slice(startPos, endPos), endTag, text.slice(endPos)].join('');
}
return hilightedText;
}
しかし、それはposArray
からわずか範囲を強調(と私はそれはまだ、まだ間違っている知っている):
A<b>CGA</b>TCGA<b>TCG</b>GATC<b>GAGC</b>GATCGAGCGATCGAT
これは私が(JavaScriptを)試してみましたものです。だから、どのように occurences positionの文字列を強調表示できますか?ありがとう。
ニース、それは動作します。しかし、posArrayをソートする必要はありますか?なぜなら、posArrayは昇順であることが保証されているからです。 –
いいえ、既にソートされている場合は、 'posArray = posArray.sort(function(a、b){return a [0] -b [0];});' – Diego