2012-02-22 8 views
1

私はアプリケーションで使用しているtinyMCEエディタの適切なスペルチェックダイアログに取り組んでいます。HTMLタグを失うことなくHTMLタグを含む単語を置き換えるにはどうすればよいですか?

私はすべての単語置換が決定された段階にあり、変更をテキストエリアのinnerHTMLに適用する必要があります。

私の懸念は、単語内にある可能性のあるマークアップを処理できることです。私は「いくつかの単語」のような単語を置き換えたい場合たとえば

を(ユーザーが信頼できないので)私はいくつかの方法で<B>タグ some<b>word</b>を処理する必要がありますするつもりです。 > myreplacement
ので MEWO RD - - > myreplacement
いくつか 単語 - > myreplacement
ので MEWO RDおそらくそう...

一部言葉のように - >マイプレースメント

<b>some</b>word  -> <b>myreplacement</b> 
so<b>mewo</b>rd  -> myreplacement 
some<b>word</b>  -> myreplacement<b></b> 
<b>so<i>mewo</b>rd</i> -> <b>myreplacement</b><i></i> 

ただし、段落全体の書式設定を消去しない限り、実際には気にしません。

パーサーは私の唯一の選択肢ですか?

+1

うん、またはいくつかのクレイジーな正規表現。 –

+0

@Diodeus:それを書くためにはどのようなパーサーが必要でしょうか?理解できません。 –

+0

HTMLで正規表現を使用しないでください。 – 472084

答えて

0

重くて重要な作業にHTML Purifierを使用します。

次に、分離された単語を得るために、空白があるところで内容を分割します。

この後、正規表現を使用して、文字列の先頭と最後からタグを取得できます。

"strip_tags"関数を適用して、単語の途中にある残りのタグを削除します。

最後に、「置換」という単語を適用する「裸の」単語があります。交換が必要ない場合は、元の文字列をそのまま使用できます。そうでない場合...

次に、開始タグと終了タグを戻すことができます。

タグを真ん中に戻したい場合は、strip_tagsの代わりにregexを使用するか、strip_tagsの結果と元の文字列をその段階で比較してください)。これらのタグは、置き換えられた単語の後に置かなければなりません。

単語部分を一緒に結合することも、別の簡単な部分です。

0

あなたが探しているものは、tinymceに同梱されている検索/置換プラグインのようなものです。この小さなプラグインのソースコードを見てみると、このプラグインの検索と置換機能を使用することもできます。

+0

おっと、私はそれをチェックします。 –

関連する問題