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 回答