在JavaScript中删除字符串中的空格


100

我已经阅读了有关javascript trim的问题,并提供了正则表达式答案。

然后,我希望修剪掉Hello和World之间的内部空间。

function myFunction() {
    alert("Hello World ".trim());
}

已编辑

为什么我期望如此!

废话!显然,修剪不会删除内部空间!,只能删除开头和结尾的空格,这就是修剪的工作方式,那么这是一个非常错误的问题,我很抱歉。


10
修剪可删除字符串开头和结尾的空格
Manse 2012年

3
修剪去除空白字符之前之后的字符串。 Hello World已经被“修剪”。
火箭危险品

@limelights要显示的“HelloWorld”,而不是“Hello World”的
埃尔南Eche

4
@void:不是“修剪”,而是另一个问题。
火箭危险品

Answers:


236

用于删除空格字符

"hello world".replace(/\s/g, "");

对于所有空白,请在下面的评论中使用Rocket的建议!


136
.replace(/ /g, '')如果有多个空间,则可能要使用。
火箭危险品

@Rocket,那是绝对正确的,只是还没有更新答案!谢谢!:)
亨里克·安德森

47
@Juhana:如果您也想删除其他空格,请执行:.replace(/\s/g, '')
火箭危险品

12
@RocketHazmat是的!正确答案!尽管这样做可能会更有效:str.replace(/ \ s + / g,)
jackocnr 2014年

3
@PitchiahNatarajan \s将匹配空格,制表符和换行符。
火箭Hazmat


1

您可以使用带正则表达式的字符串替换方法。

"Hello World ".replace(/ /g, "");

replace()方法返回一个新字符串,该字符串具有部分或全部模式匹配项,并由替换项替换。该模式可以是字符串或RegExp

正则表达式

  • // -正则表达式匹配空格

  • g-全局标志;查找所有匹配项,而不是在第一个匹配项后停止


1

您可以使用

"Hello World ".replace(/\s+/g, '');

trim()仅删除字符串上的尾随空格(链上的第一个和最后一个)。在这种情况下,此regExp更快,因为您可以同时删除一个或多个空格。

如果将替换空字符串更改为“ $”,则区别将变得更加清晰:

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // $Q$W$E$R$TY$

性能比较- /\s+/g更快。看到这里:http : //jsperf.com/s-vs-s


目前接受的答案做同样的事情。请提出一些相关测试,表明此方法比该答案要快十亿分之一秒。
异端猴子

@HereticMonkey更新!
ArlanG
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.