在Javascript中匹配IE7和IE8中不可破坏的空格

时间:2012-11-03 16:26:35

标签: regex internet-explorer-8 internet-explorer-7 whitespace match

我想在任何相对现代的浏览器中替换空格(因此对于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>

在IE7和IE8中输出Result: 'Helloworld!'在FF和IE&gt; = 9和Result : ' '。怎么了?

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

1 个答案:

答案 0 :(得分:2)

使用这个:

<击>

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

<击>

replace(/[\s\xA0]+/g, '')