PerlCGIアプリケーションは検索機能を提供しています。アプリケーションは、一致するスニペットをHTMLページに書き込みます。次に、スニペット内の一致を強調表示します。私は次のようなものを使うことができます
s/($searchregex)/<span class="highlight">$1<\/span>/gi
一致を強調表示します。これはテキストのみの場合には問題なく機能しますが、リンクや参照付きの画像など、HTMLタグ自体を含むスニペットで機能しない場合があります。失敗した場合、上記の置換は、href値内にspanタグを挿入することによってHTMLリンクを破棄します。
現在、私は3つの可能な解決策を見ています。
<>内など、htmlタグ内の一致を置き換えない正規表現を記述します。この場合の代替正規表現の書き方がわかりません。この置換を可能にするperl正規表現はありますか?それはどのように見えますか?
上記の置換のすべての間違った置換を置き換える正規表現を記述します。これにより、href内の間違ったスパンタグが修正されます。
Javascriptを使用して、結果のDOMツリー内の一致を強調表示します。jQueryを使用する可能性のある方法は、一致するテキストを含むハイライトhtmlに概説されています。通常のJavascriptでさえ、 JavaScriptの正規表現フレーバーで十分かもしれません。ハイライト正規表現を強調表示するための特別なjQueryプラグインもあります。私はJavascriptを初めて使用するので、もう少しアドバイスをいただければ幸いです。
望ましい解決策は何ですか?最善の方法は1です。-しかし、それは不可能のようです。したがって、残りの質問は次のとおりです。サーバー側で醜い方法で作業を行うか、クライアント側でよりクリーンな方法で問題を解決するためにJavascriptを導入します。