如何使用 JavaScript 删除字符串中的空格?
如何删除字符串中的空格?例如:
输入:
'/var/www/site/Brand new document.docx'
输出:
'/var/www/site/Brandnewdocument.docx'
How to remove spaces in a string? For instance:
Input:
'/var/www/site/Brand new document.docx'
Output:
'/var/www/site/Brandnewdocument.docx'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(15)
这?
例子
更新:基于此问题,这
是一个更好的解决方案。它产生相同的结果,但速度更快。
正则表达式
\s
是“空白”的正则表达式,g
是“全局”标志,表示匹配所有\s
(空格)。关于
+
的详细解释可以在这里找到。作为旁注,您可以将单引号之间的内容替换为您想要的任何内容,因此您可以将空格替换为任何其他字符串。
This?
Example
Update: Based on this question, this:
is a better solution. It produces the same result, but it does it faster.
The Regex
\s
is the regex for "whitespace", andg
is the "global" flag, meaning match ALL\s
(whitespaces).A great explanation for
+
can be found here.As a side note, you could replace the content between the single quotes to anything you want, so you can replace whitespace with any other string.
最短和最快:
str.replace(/ /g, '');
基准:
这是我的结果 - (2018.07.13) MacOs High Sierra 10.13.3 on Chrome 67.0 .3396(64 位)、Safari 11.0.3(13604.5.6)、Firefox 59.0.2(64 位)):
短字符串
类似于 OP 问题中的示例的短字符串
最快的解决方案所有浏览器均为
/ /g
(regexp1a) - Chrome 17.7M(操作/秒)、Safari 10.1M、Firefox 8.8M。对于所有浏览器来说最慢的是split-join
解决方案。将更改为
\s
或将+
或i
添加到正则表达式会减慢处理速度。LONG 字符串
对于约 300 万个字符的字符串,结果为:
您可以在您的计算机上运行它:https://jsperf.com/remove-string-spaces/1
SHORTEST and FASTEST:
str.replace(/ /g, '');
Benchmark:
Here my results - (2018.07.13) MacOs High Sierra 10.13.3 on Chrome 67.0.3396 (64-bit), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64-bit) ):
SHORT strings
Short string similar to examples from OP question
The fastest solution on all browsers is
/ /g
(regexp1a) - Chrome 17.7M (operation/sec), Safari 10.1M, Firefox 8.8M. The slowest for all browsers wassplit-join
solution. Changeto
\s
or add+
ori
to regexp slows down processing.LONG strings
For string about ~3 milion character results are:
You can run it on your machine: https://jsperf.com/remove-string-spaces/1
有两种方法可以做到这一点!
Two ways of doing this!
以下@rsplak回答:实际上,使用split/join方式比使用regexp更快。查看性能测试用例
所以
var result = text.split(' ').join ('')
的运行速度比
var result = text.replace(/\s+/g, '')
在小文本上这不相关,但对于时间很重要的情况,例如在文本分析器中,尤其是当与用户互动,这一点很重要。
另一方面,
在使用
\s+
可以处理更广泛的空格字符。在\n
和\t
中,它还匹配\u00a0
字符,这就是textDomNode.nodeValue
获取文本时被转入。所以我认为这里可以得出这样的结论:如果你只需要替换空格
' '
,请使用split/join。如果符号类可以有不同的符号 - 使用replace(/\s+/g, '')
Following @rsplak answer: actually, using split/join way is faster than using regexp. See the performance test case
So
var result = text.split(' ').join('')
operates faster than
var result = text.replace(/\s+/g, '')
On small texts this is not relevant, but for cases when time is important, e.g. in text analisers, especially when interacting with users, that is important.
On the other hand,
is turned in, when getting text using
\s+
handles wider variety of space characters. Among with\n
and\t
, it also matches\u00a0
character, and that is whattextDomNode.nodeValue
.So I think that conclusion in here can be made as follows: if you only need to replace spaces
' '
, use split/join. If there can be different symbols of symbol class - usereplace(/\s+/g, '')
您还可以使用 JS 的最新字符串方法之一: 全部替换
You also use one of the latest string methods of JS: replaceAll
简单的方法
easy way
单击此处查看工作示例
Click here for working example
没有正则表达式,它只适用于一次。
这更快更简单!
在某些情况下可以帮助你们中的一些人。
Without regexp, it works fine for only one occurrence.
This is faster as simple !
Could help some of you in some cases.
从字符串中删除空格的最简单方法是以这种方式使用替换
Easiest way to remove spaces from the string is use replace in this way
注意:虽然您使用“g”或“gi”来删除空格,但两者的行为相同。
如果我们在替换函数中使用“g”,它将检查是否完全匹配。但如果我们使用“gi”,它会忽略大小写。
参考点击此处。
Note: Though you use 'g' or 'gi' for removing spaces both behaves the same.
If we use 'g' in the replace function, it will check for the exact match. but if we use 'gi', it ignores the case sensitivity.
for reference click here.
您可以使用正则表达式从字符串中删除空格`
You can use regex to remove spaces from string`
使用
replaceAll
似乎是最简单、最干净的方法。请参阅文档。
Using
replaceAll
seems like the simplest cleanest way.See docs.
虽然正则表达式可能会更慢,但在许多用例中,开发人员仅一次操作几个字符串,因此考虑速度是无关紧要的。尽管 / / 比 /\s/ 更快,但使用 '\s' 可能会更清楚地向其他开发人员解释发生了什么。
使用 Split + Join 可以对字符串进行进一步的链式操作。
Although regex can be slower, in many use cases the developer is only manipulating a few strings at once so considering speed is irrelevant. Even though / / is faster than /\s/, having the '\s' explains what is going on to another developer perhaps more clearly.
Using Split + Join allows for further chained manipulation of the string.
输出:
HelloWorld
The output:
HelloWorld