如何删除字符串中的空格?例如:
输入:
'/var/www/site/Brand new document.docx'
输出:
'/var/www/site/Brandnewdocument.docx'
如何删除字符串中的空格?例如:
输入:
'/var/www/site/Brand new document.docx'
输出:
'/var/www/site/Brandnewdocument.docx'
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
两种方法可以做到这一点!
以下@rsplak答案:实际上,使用拆分/联接方式比使用regexp更快。查看性能测试案例
所以
var result = text.split(' ').join('')
运行速度比
var result = text.replace(/\s+/g, '')
在小文本上这无关紧要,但是对于时间很重要的情况(例如在文本分析器中,尤其是在与用户交互时)而言,这很重要。
另一方面,\s+
处理各种各样的空格字符。在\n
和之间\t
,它还与\u00a0
字符匹配,这就是
使用来获取文本时所输入的字符textDomNode.nodeValue
。
因此,我认为这里的结论可以如下:如果只需要替换空格 ' '
,请使用split / join。如果符号类可以有不同的符号 -使用replace(/\s+/g, '')
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 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 was split-join
solution. Change to
\s
or add +
or i
to regexp slows down processing.
对于大约300万个字符的字符串,结果为:
您可以在计算机上运行它:https : //jsperf.com/remove-string-spaces/1
尽管可以使用正则表达式删除空格,但是有一个简单的函数可以删除所有空白
.trim();
: