Answers:
这个?
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
是“全局”标志,表示匹配ALL\s
(空白)。
+
在这里可以找到一个很好的解释。
附带说明,您可以将单引号之间的内容替换为所需的任何内容,因此可以将空白替换为任何其他字符串。
.replace(/\s+/g, '')
频率更高。那和我的回答有区别吗?
.replace(' ','')
行得通。非常感激!
+
人只有60票,如果有人想也将其归功于stackoverflow.com/a/5964427/4258817
.replace('/\s+/g', '')
因为它会尝试找到该文字字符串。这让我绊倒了……
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
有两种方法!
最短和最快:str.replace(/ /g, '');
基准测试:
这是我的结果-(2018.07.13)Chrome 67.0.3396(64位),Safari 11.0.3(13604.5.6),Firefox 59.0.2(64位)上的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回答如下:实际上,使用拆分/联接方式比使用regexp更快。看表演测试案例
所以
var result = text.split(' ').join('')
运行速度比
var result = text.replace(/\s+/g, '')
在小文本上这无关紧要,但是对于时间很重要的情况(例如在文本分析器中,尤其是在与用户交互时)而言,这很重要。
另一方面,\s+
处理各种各样的空格字符。在\n
和之间\t
,还与\u00a0
字符匹配,这是
在使用来获取文本时所输入的字符textDomNode.nodeValue
。
因此,我认为这里的结论可以如下:如果只需要替换空格 ' '
,请使用split / join。如果符号类可以有不同的符号 -使用replace(/\s+/g, '')
way faster
。运行了测试,在我的Firefox 61上仅提高了 2.19%
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);
var output = '/var/www/site/Brand new document.docx'.replace(/ /g, "");
or
var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,"");
注意:尽管您使用'g'或'gi'删除空格,但两者的行为相同。
如果在替换函数中使用“ g”,它将检查是否完全匹配。但是如果我们使用'gi',它会忽略大小写。
供参考单击这里。
正则表达式+ Replace()
尽管regex的速度可能较慢,但在许多用例中,开发人员仅一次处理了几个字符串,因此考虑速度无关紧要。尽管/ /比/ \ s /快,但使用'\ s'可能更清楚地说明了另一个开发人员正在发生的情况。
let string = '/var/www/site/Brand new document.docx';
let path = string.replace(/\s/g, '');
// path => '/var/www/site/Brandnewdocument.docx'
Split()+ Join()
使用Split + Join允许对字符串进行进一步的链式操作。
let string = '/var/www/site/Brand new document.docx';
let path => string.split('').map(char => /(\s|\.)/.test(char) ? '/' : char).join('');
// "/var/www/site/Brand/new/document/docx";
" ahm ed ".split('').filter(e => e.trim().length).join('')