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

时间:2017-01-05 14:30:41

标签: javascript string whitespace removing-whitespace

我需要用javascript语言从字符串内部删除空格。左右两侧可以有这个空间。我找不到解决方案......

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

我只有:

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

但它也会从侧面移除空白区域。

我想:

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

1 个答案:

答案 0 :(得分:4)

您可以匹配并捕获前导/尾随空格,并使用反向引用在结果中恢复,并删除所有其他空格。

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

模式详情

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

$1是对插入到结果字符串中的捕获组内容的反向引用。

要支持 ,请使用替换(?:\s| )

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