如何去除字符串中的空格?例如:
输入:
'/var/www/site/Brand new document.docx'
输出:
'/var/www/site/Brandnewdocument.docx'
如何去除字符串中的空格?例如:
输入:
'/var/www/site/Brand new document.docx'
输出:
'/var/www/site/Brandnewdocument.docx'
这?
str = str.replace(/\s/g, '');
例子
var str = '/var/www/site/Brand new document.docx';
document.write( str.replace(/\s/g, '') );
更新:基于这个问题,这个:
str = str.replace(/\s+/g, '');
是更好的解决方案。它产生相同的结果,但速度更快。
正则表达式
\s
是“空白”的正则表达式,g
是“全局”标志,表示匹配所有\s
(空白)。
+
可以在这里找到一个很好的解释。
作为旁注,您可以将单引号之间的内容替换为您想要的任何内容,因此您可以将空格替换为任何其他字符串。
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
两种方法做到这一点!
最短和最快:str.replace(/ /g, '');
基准:
这是我的结果 - Chrome 67.0.3396(64 位)、Safari 11.0.3(13604.5.6)、Firefox 59.0.2(64 位)上的(2018.07.13)MacOs High Sierra 10.13.3:
类似于 OP 问题示例的短字符串
所有浏览器上最快的解决方案是/ /g
(regexp1a) - Chrome 17.7M(操作/秒)、Safari 10.1M、Firefox 8.8M。所有浏览器中最慢的是split-join
解决方案。更改
到\s
或添加+
或i
以正则表达式减慢处理。
对于大约 300 万个字符的字符串,结果是:
你可以在你的机器上运行它:https : //jsperf.com/remove-string-spaces/1
按照@rsplak 的回答:实际上,使用拆分/连接方式比使用正则表达式要快。查看性能测试用例
所以
var result = text.split(' ').join('')
运行速度比
var result = text.replace(/\s+/g, '')
对于小文本,这无关紧要,但对于时间很重要的情况,例如在文本分析器中,尤其是在与用户交互时,这很重要。
另一方面,\s+
处理更广泛的空格字符。在\n
and 中\t
,它还匹配\u00a0
字符,这就是
使用textDomNode.nodeValue
.
所以我认为这里的结论可以如下:如果你只需要替换空格 ' '
,使用split/join。如果可以有不同的符号类符号- 使用replace(/\s+/g, '')
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);