给定一个字符串,如:
---0---
可以使用哪种 jQuery 或 JavaScript 魔法来将空格保持在最大一个空格?
目标:
---1---
原文由 AnApprentice 发布,翻译遵循 CC BY-SA 4.0 许可协议
给定一个字符串,如:
---0---
可以使用哪种 jQuery 或 JavaScript 魔法来将空格保持在最大一个空格?
目标:
---1---
原文由 AnApprentice 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您似乎对性能感兴趣,因此我使用萤火虫对这些进行了分析。这是我得到的结果:
str.replace( / +/g, ' ' ) -> 380ms
str.replace( /\s\s+/g, ' ' ) -> 390ms
str.replace( / {2,}/g, ' ' ) -> 470ms
str.replace( / +/g, ' ' ) -> 790ms
str.replace( / +(?= )/g, ' ') -> 3250ms
这是在 Firefox 上运行 100k 字符串替换。
如果您认为性能是个问题,我鼓励您使用 firebug 进行自己的分析测试。众所周知,人类不善于预测程序中的瓶颈所在。
(另请注意,IE 8 的开发人员工具栏还内置了一个分析器——可能值得检查一下 IE 中的性能。)
原文由 Edward Loper 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
鉴于您还想覆盖制表符、换行符等,只需将
\s\s+
替换为' '
:如果您真的只想覆盖空格(因此不包括制表符、换行符等),请这样做: