私は CKEditor を使用して、聖書のテキストを出力する C# でコーディングされた ASP ページにユーザーがテキストを入力できるようにしています。ユーザーが何らかの文字列を入力できるようにする関数を追加したいと思います。たとえば、聖書から、テキストエディタに入ると(例として、特別なコード/文字列を識別するために使用する特別な文字列として ~~~ を使用)
今日は幸せな日です。私はこれを学びました: ~~~1 John 4:7~~~.
コードビハインドは、"1 John 4:7" 文字列の前後にある ~~~ を検出できる必要があり、これが検索可能であり、"1 John 4:7" 文字列を使用していることを認識できる必要があります。データ構造を検索するには(ハッシュまたは辞書またはリンクリストを使用して考えています)、ページの出力は次のようになります
今日は幸せな日です、私はこれを学びました:「愛する人よ、私たちは互いに愛し合いましょう。なぜなら、愛は神から来るからです。」
通常のテキスト ボックスを使用してこれを行うことができますが、wysiwyg エディターを使用すると、背景に大量のタグが追加され、文字列に色を追加したい場合、文字列がさらに複雑になります。これは、エディターが最初の ~~~ から後ろの ~~~ の終わりまでの文字列全体を強調表示しない場合があるためです。私はこのような文字列で終わるかもしれません(ckeditorのテキストのソース)
<p> <span class="text 1John-4-7" id="en-KJ21-30580">~<span style="background-color: #ffff00">~~</span><strong><span style="background-color: #ffff00">1 Jo<u>hn </u><em>4:7</em></span></strong><span style="background-color: #ffff00">~~~</span></span></p>
したがって、この ~~~1 John 4:7~~~ のような単純な文字列の代わりに、多くの書式設定を含むはるかに長い文字列があります (エディタで書式設定されたテキストを追加できるようにしたいので、これは予想されます)。 John という単語と "~~~" シーケンスは、タグ間で分割されます。(文字列が部分的に強調表示されているため、特殊な文字列全体に表示される最初の色を使用するか、簡単にするために文字列全体の間のすべてのタグを無視する必要があります (検索されたテキストは書式設定のみを採用することを意味します) ~~~ 特別な文字列/コード ~~~ を囲んだもの)
文字列全体 ~~~1 John 4:7~~~ をアトミック文字列 (エディターで変更されない連続した文字列) として持つことができれば素晴らしいことですが、これはそうではないかもしれません。この場合、ユーザーがエディターで自由にテキストを入力できるようにするにはどうすればよいか、また ASP ページに、ユーザーが特別な文字列を入力したことを検出する機能を持たせるにはどうすればよいか、お聞きしたいです。一連の特殊文字 (この場合は ~~~) を使用して囲んでいる場合に、検索を試みることができるコードです。
読んでいただきありがとうございます。