私は1つの問題を抱えています。注釈機能のために、選択したテキストをHTMLに置き換える必要があります。私はテキストを置き換えるまで達する。しかし、今問題は、ドキュメントが繰り返し文字列を含む可能性があり、私がそれを置き換えようとしたとき、常にその段落の最初のインスタンスを置き換えます。私のコードは以下のとおりです。文字列を置き換える際に重複を気にする方法は?
それぞれの位置でjsonからすべての注釈を置き換える必要があります。正確な場所でテキストを置き換える/挿入する方法を教えてもらえますか?
for (var i = 0; i < AnnotationDetails.length; i++)
{
//locate the string between start and end point
var TextToReplace = OutPutText.substring(AnnotationDetails[i].start, AnnotationDetails[i].end);
//prepare replace text
var AnnotationClass = '<mark data-entity="' + AnnotationDetails[i].label + '" data-id="' + AnnotationDetails[i]._id + '">' + TextToReplace + '</mark>';
var AnnotationText = $('.output').html();
//put text back as html to div
$('.output').html(AnnotationText.replace(TextToReplace, AnnotationClass));
}
以下にjsonと記載する。
"annotations": [
{
"_id": "FWFpjaec",
"start": "6123",
"end": "6155",
"label": "support"
}
]
2つの場所で文字列「Planning and Conservation League」を利用できます。だから私は2番目のインスタンスを置換しようとするたびに、javascriptは常に最初のものを置き換えます。 jsonの開始点と終了点は正確ですが、正確な位置に置き換える方法はありますか?
これを試す:https://stackoverflow.com/a/542260/6932518 – Botimoo
リンクありがとうございますが、私の問題は特定の場所で文字列を置き換える必要があることです。私はファイルを読み込んで解析していますが、div内で出力可能です。その後、テキストの一部を選択してアノテーションを適用することができます。しかし、誰かがファイル内で前に利用可能なチャンクを選択したときに問題が発生し、その時にジャバスクリプトは選択されたものの代わりにその最初のオカレンスを置き換えます。 –