0

タグ内の単一行のb/ h2/ h3/ h4/タグをタグに置き換えたい。h5blockquoteh6

だから私はこれが欲しい:

^<[b|h[2-5]]>([^\.]+)</[b|h[2-5]]>$

これに置き換えられます:

<h6>\1</h6>

blockquoteただし、別の行にあるタグ内にある場合のみ。blockquote解決策には、終了タグの後ろ読みと開始タグの否定後読みが含まれている必要があると考えていますが、blockquoteこれを実装する方法がわかりません。

4

1 に答える 1

0

多くのことがうまくいかない可能性があるため、正規表現は任意の HTML の解析には非常に適していません。

そうは言っても、このデモはあなたを始めるかもしれません.

これは、エッジケースを適切に処理しません。

<div><b>This thing</div></b>

正しく解析されません。

入力が適切な形式であり、入れ子が深すぎないことがわかっている場合 (たとえば、他の何かの<b>中に a が含まれている場合)、それは機能する可能性があります。<h2>しかし、HTML を解析するには、DOM パーサーが本当に必要です。

現在、これは「タグ間」の要件を処理していませんblockquoteが、Javascript を使用している場合 (これを使用している場合)、これは非常に単純なタスクのではありません。すべての要素を に変換するには、本質的に同じプロセスを何度も実行する必要がありますh6

代わりに jQuery を使用する場合は、はるかに安全に実行できます: jsfiddle

于 2015-09-25T18:47:56.570 に答える