如何删除字符串中的空格?例如:
输入:
'/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, '');
是一个更好的解决方案。它产生相同的结果,但它更快。
The Regex
\s是“空白”的正则表达式,g是“全局”标志,表示匹配ALL\s(空白)。
\s
g
+的一个很好的解释可以在这里中找到。
+
作为补充说明,您可以将单引号之间的内容替换为您想要的任何内容,因此您可以将空格替换为任何其他字符串。
var a = b = " /var/www/site/Brand new document.docx "; console.log( a.split(' ').join('') ); console.log( b.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);
点击这里查看工作示例
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',它会忽略区分大小写。
请参考点击这里。
以下@rspak的回答:实际上,使用拆分/连接方式比使用正则表达式更快。参见性能测试用例
所以
var result = text.split(' ').join('')
运行速度超过
var result = text.replace(/\s+/g, '')
在小文本上,这是不相关的,但对于时间很重要的情况,例如在文本分析器中,特别是在与用户交互时,这很重要。
另一方面,\s+处理更广泛的空格字符。在\n和\t中,它还匹配\u00a0字符,这就是 在使用textDomNode.nodeValue获取文本时打开的内容。
\s+
\n
\t
\u00a0
textDomNode.nodeValue
所以我认为这里的结论可以如下:如果你只需要替换空间' ',请使用拆分/连接。如果可以有不同的符号类符号-使用replace(/\s+/g, '')
' '
replace(/\s+/g, '')
最短和最快:str.replace(/ /g, '');
str.replace(/ /g, '');
基准:
以下是我的结果-(2018.07.13)MacO High Sierra 10.13.3 onChrome67.0.3396(64位),Safari11.0.3(13604.5.6),Firefox 59.0.2(64位)):
类似于OP问题示例的短字符串
所有浏览器上最快的解决方案是/ /g(regex1a)-Chrome17.7M(操作/秒),Safari10.1M,Firefox8.8M。所有浏览器中最慢的是split-join解决方案。将更改为\s或添加+或i以正则表达式减慢处理速度。
/ /g
split-join
i
对于约3百万字符的字符串,结果是:
您可以在您的机器上运行它:https://jsperf.com/remove-string-spaces/1
正则表达式+替换()
尽管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允许对字符串进行进一步的链式操作。
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";
简单的方法
someString.replace(/ /g, ''); // or someString.replace(/\s/gm, '');
var str = '/var/www/site/Brand new document.docx'; document.write( str.replace(/\s\/g, '') ); ----------
your_string = 'Hello world'; words_array = your_tring.split(' '); string_without_space = ''; for(i=0; i<words_array.length; i++){ new_text += words_array[i]; } console.log("The new word:" new_text);
HelloWorld
使用replaceAll似乎是最简单最干净的方法。(我不能保证最快)
replaceAll
'/var/www/site/Brand new document.docx'.replaceAll(' ', '')
见文档。
replace eAll()方法返回一个新字符串,其中模式的所有匹配项都被替换项替换。模式可以是字符串或RegExp,替换项可以是字符串或要为每个匹配项调用的函数。
没有regexp,它只适用于一次发生。
input = input.replace(' ', '');
简单快捷! 在某些情况下可以帮助一些人。
您还可以使用JS的最新字符串方法之一:全部替换
'/var/www/site/Brand new document.docx'.replaceAll(' ', '');
您可以使用regex从string中删除空格
let str = '/var/www/site/Brand new document.docx'; let result = str.replace(/\s/g, '');
从字符串中删除空格的最简单方法是以这种方式使用替换