5

比較的最近のブラウザで空白を置き換えたい(したがって、IEの場合、バージョン> = 7)。

したがって、文字列が与えられると、次のよう"Hello world!"になります。

<script type="text/javascript">
document.write("Result: '" + "Hello world!".replace(/\s/g, '') + "'");
</script>

出力が期待されるもの:Result: 'Helloworld!'

しかし、IE7 と IE8 では、これらのいずれかのような改行不可のスペースを使用すると失敗します: &#160;== &nbsp;==\u00A0

例えば:

<script type="text/javascript">
document.write("Result: '" + String.fromCharCode(160).replace(/\s/g, '') + "'");
</script>

Result: 'Helloworld!'FF と IE >= 9 およびResult : ' 'IE7 と IE8 で出力されます。なんてこったい?

これが唯一の例外なのだろうか?これに関する多くの情報はまったく見つかりませんでした。壊れないものを含むすべての空白を削除する正規表現はありますか?

4

1 に答える 1

2

これを使用してください:

replace(/(?:\s|\xA0|&nbsp;|&#160;)+/g, '')

replace(/[\s\xA0]+/g, '')
于 2012-11-03T16:32:01.130 に答える