在Javascript中匹配IE7和IE8中不可破坏的空白区域

Yet*_*eti 5 regex whitespace match internet-explorer-8 internet-explorer-7

我想在任何相对现代的浏览器中替换空格(因此对于IE,版本> = 7).

因此,给定字符串"Hello world!"我们会做:

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

我们期望输出: Result: 'Helloworld!'

但在IE7和IE8虽然它没有使用非易碎空间如这一个:&#160;== &nbsp;==\u00A0

例如:

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

将输出Result: 'Helloworld!'FF和IE> = 9以及Result : ' 'IE7和IE8.我勒个去?

这让我想知道这是否是唯一的例外?我根本找不到太多关于此的信息.是否有正则表达式可以删除所有空格,包括不可破坏的空格?

Ωme*_*ega 2

使用这个:

replace(/(?:\s|\xA0|&nbsp;|&#160;)+/g, '')
Run Code Online (Sandbox Code Playgroud)

replace(/[\s\xA0]+/g, '')
Run Code Online (Sandbox Code Playgroud)