クライアント側でこれを行うのが最善かどうかはわかりません。段落をサーバーに送り返して作業を行うことを検討します。しかし、どちらの方法でも作業は同じでなければなりません。
最初に段落のすべてのコンテンツを取得し、DOM のいくつかのノードにある可能性のあるすべてを取得するようにしてください。( Read This ) 次に、分割された文字を探し、HTML エンティティにある間は無視するパーサーを作成する必要があります。
例として、. href 属性内の は無視し、分割しないでください。解析を行っている間、単語数を維持したり、スペースの作業を中断したりできます。各文を、文全体と単語数を含むオブジェクトにします。したがって、これらのオブジェクトを段落を表す配列にプッシュできます。完了したら、配列を反復処理し、単語数がしきい値に達した場合に CSS で強調表示するために、任意の文をスパンでラップできます。
主な問題は、次のような 2 つの文の一部であるタグです。
I'm typing <b> in bold. NOW!</b>
私が話したことはそれを扱っていませんが、それをサポートするために後でパーサーをより複雑にすることができます。
それでは、単語のカウントと正しい場所での分割を処理するステート マシンを使用して、すべての文字を解析する私のとりとめのない解析の概要を説明します。分割時に、収集したデータを配列に追加します。完了したら、配列を反復処理して、新しくラップされた文を出力します。