删除字符串javascript中的额外空格

d-_*_*_-b 33 javascript regex trim

什么功能会转

 this contains       spaces 
this contains spaces
javascript

我尝试了以下,使用类似的SO问题,但无法使其工作.

var string = " this contains   spaces ";

newString = string.replace(/\s+/g,''); // "thiscontainsspaces"
newString = string.replace(/ +/g,'');  //"thiscontainsspaces"
Run Code Online (Sandbox Code Playgroud)


编辑了这个问题,更多地关注javascript方面.是否有一个简单的纯JavaScript方式来实现这一目标?

Ham*_*ish 84

你很亲密

请记住,replace 第二个参数替换找到的文本.所以:

newString = string.replace(/\s+/g,''); // "thiscontainsspaces"
Run Code Online (Sandbox Code Playgroud)

查找任意数量的连续空格并将其删除.尝试用一个空格替换它们!

newString = string.replace(/\s+/g,' ').trim();
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这是有道理的...顺便说一句,这缺少一个修剪功能(第一个和最后一个空格):) (2认同)

Ye *_*Liu 16

string.replace(/\s+/g, ' ').trim()
Run Code Online (Sandbox Code Playgroud)


bas*_*aza 9

试试这个,这将替换字符串中的 2 或 2+ 个空格。

const string = " this contains   spaces ";    
string.replace(/\s{2,}/g, '').trim() 
Run Code Online (Sandbox Code Playgroud)

  • 这会将 2+ 空格变成 0 空格。您可能需要将其更改为单个空格 (' ') 而不是 ('') (2认同)

d-_*_*_-b 7

我想出了一种方法,但很好奇是否有更好的方法......

string.replace(/\s+/g,' ').trim()
Run Code Online (Sandbox Code Playgroud)


小智 6

我遇到了同样的问题,我是这样解决的

Text = Text.replace(/ {1,}/g," ");
Text = Text.trim();
Run Code Online (Sandbox Code Playgroud)