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

标签 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>

将输出 Result: 'Helloworld!'在 FF 和 IE >= 9 和 Result : ' '在 IE7 和 IE8 中。我勒个去?

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

最佳答案

使用这个:

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

关于regex - 在 Javascript 中匹配 IE7 和 IE8 中的不可破坏空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211077/

相关文章:

javascript - 在 IE7 中控制打印尺寸

javascript - 在 IE7 中,更改图像时会出现闪烁

javascript - 任何人都可以帮助我使用 gregjacobs/Autolinker.js 的工作示例吗

css - Bootstrap 3 : Navbar and IE8 not respecting respond. js?

internet-explorer - 如何设置 IE 扩展的名称(IE 中的 BHO)

javascript - 这是 IE8 中 .split() 的预期行为吗?

php - 将外来字符更改为对应的罗马字符

ruby - 多行/未知数据正则表达式查询

regex - Varnish 3 没有正确解析正则表达式模式

CSS IE7 如何强制 LI 内的 UL 比父级宽