JS:如何仅从字符串内部删除空格

JS: How to remove white spaces only from inside of string

我只需要在 javascript 语言中删除字符串内部的空格。左右两侧可以有那个空格。我没有找到解决方案...

也许是一些原生功能?或者 sombedy 有一些正则表达式?

我只有:

str = str.replace(/\s+/g, '');

但它也删除了边上的空白。

我要:

var str = "   s dasd   asd sad sa d   ";
str = str.replace(/\s+/g, '');
// output
"   sdasdasdsadsad   ";

您可以匹配并捕获 leading/trailing 个空格并使用反向引用恢复结果,并删除所有其他空格。

var str = "   some text  ";
str = str.replace(/(^\s+|\s+$)|\s+/g, '');
console.log("'",str,"'");

图案详情:

  • (^\s+|\s+$) - 第 1 组捕获一个或多个空格 1) 在字符串的开头 (^\s+) 或 2) 在字符串的结尾 (\s+$)
  • | - 或
  • \s+ - 字符串中其他任何地方的 1+ 个空格。

</code> 是对插入到结果字符串中的捕获组内容的反向引用。</p> <p>为了也支持 <code>&nbsp;,使用交替,(?:\s|&nbsp;):

console.log("&nbsp;  s dasd &nbsp; asd sad sa d  &nbsp;".replace(/(^(?:\s|&nbsp;)+|(?:\s|&nbsp;)+$)|(?:\s|&nbsp;)+/g, ''));