我正在尝试获取类似下面的字符串:
[==== ]
为此,我使用此代码:
'[' + '='.repeat (4) + ' '.repeat (4) + ']'
...但我得到[==== ]
;也就是说,所有空间都被压成一个。我在Google Chrome控制台中检查了此代码,确实' '.repeat(25)
只生成了一个空格。如何让repeat
真正产生多个空间?
我在the manual找不到任何相关内容。
答案 0 :(得分:6)
这是Chrome开发人员工具的一个问题。空格可以重复,但它们显示为一个字符,这是错误的:
您可以检查结果:
(' ' + ' ').length
// => 2
这是Node.js REPL的一个例子:
总之,您的代码确实有效,但Google Chrome的控制台无法正确显示结果。
如果您正在谈论不使用等宽字体的HTML元素中的显示,请使用@Jamiec的解决方案,使用non-breaking spaces:
'[' + '='.repeat (4) + ' '.repeat(4) + ']'
作为@James Thorpe,此 一个bug in Chrome已得到修复。可能我们会在更新浏览器版本时获得修复。
答案 1 :(得分:2)
浏览器会折叠多个空格,为了强制它,您可以使用non-breaking spaces。
因此,在您的情况下,您可以使用
' '.repeat(4)
(可以说调试控制台不应该崩溃空白,但在你的情况下似乎确实如此)