0

jQuery のランダムな HTML ページで単純なテキスト検索/置換を実行していますが、属性内に表示される用語を無視するという問題がありますjquery<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> jquery. 現在、私のコードは次のようになっています。

$("div#content").html($("div#content").text().replace(/(jquery)/g, "stuff"));

私は正/負の先読み/後読みを見てきましたが、正しく理解できません。jQuery 以外の外部ライブラリを使用することができません。この投稿は既に見ました。

解決策の 1 つは、indexOf マジックを使用して必要なセクションを検索することだと思いますが、これが効率的であるか、迅速なテキスト検索に適しているかどうかはわかりません。

どんな提案でも大歓迎です!

4

3 に答える 3

1

属性に用語を表示する他の方法がない限り、...が前に付いていない(?<=[^\/])jqueryすべてを検索するのはどうですか?jquery/jquery

http://regexr.com?30o8n

于 2012-04-24T01:13:47.817 に答える
1

これは、手作業でコーディングされたパーサーを使用するのに適したケースです。これは、処理したいすべてのケースを確実に処理できる唯一のアプローチです。

基本的に、パーサーはステートマシンと考えてください。入力テキストを一度に 1 文字ずつ読み取り、各文字に対して、その文字とその現在の解析状態に基づいて適切なアクションを実行する必要があります。このモデルにより、HTML タグ内に表示されるテキストを無視し、他のすべてを処理することが比較的簡単になります。

開始するための簡単な例を次に示します: http://jsfiddle.net/8BeEv/

サンプル コードは現在、HTML タグ内のエスケープ シーケンス (\>たとえば、タグ内のシーケンスはそれを壊します)、不正な HTML、または一般的にはまれなエラー ケースを処理しないことに注意してください。

于 2012-04-24T01:51:03.190 に答える
0

ちょうど今これに出くわし、テキストノードだけを見ることで以前に抱えていた問題をほとんど処理します: https://stackoverflow.com/a/4515063/660036

この解決策は、複数のテキストノードにまたがるテキスト、つまり「クイック」を検索する

the <strong>qui</strong>ck brown fox

しかし、これらのケースを解決するために必要な複雑さは、私が現在必要としているものよりもはるかに高い = P

于 2012-04-25T00:34:03.993 に答える