3

私はこのHTML文字列を持っていますが、これには多くの空白が含まれていることがよくあります

例:

<p>All     these words <br />
<strong>All</strong>   <em>these</em>   words
<pre>    All    these words</pre>
</p>

JavaScriptを使用してそれらを削除する必要があり、次の正規表現を考え出しました。

String.replace(/ {2,}/g, '');

これは不要な空白を置き換えることでうまくいくようですが、PRE要素内の空白を保持したいと思います。

これは正規表現で可能ですか?

4

2 に答える 2

6

正規表現ではこれを行うことはできません。それはそれと同じくらい簡単です。

正規表現は、この種のものには適していません。<pre>ブロックには他のタグなどを含めることができます。white-space: preまた、プロパティを使用する CSS (インラインまたはクラス付き) はどうですか?

HTML とブラウザーは空白を適切に処理します。これは本当にあなたが解決しなければならない問題ですか?その場合、何らかの HTML パーサーが必要です。

于 2009-06-06T10:56:37.633 に答える
2

使用する:

String.replace(/(<pre[\s\S]*?>[\s\S]*?<\/pre>)| {2,}/ig, '$1')

Firefox3でテスト済み

編集:

こちらのテストページをご覧ください:http://ashita.org/StackOverflow/replacetest.html

于 2009-06-06T10:41:22.203 に答える