2017-01-05 26 views
2

我需要JavaScript语言只能从字符串内部删除空格。左侧和右侧可以有空间。我没有找到解决办法...JS:如何从字符串内部仅删除空格

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

我只有:

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

但它从侧面也删除空格。

我想:

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

你能不能把你想要什么样的例子吗? –

+0

我已经添加了一个小例子 – Vital

+0

' '不是空格......如果您认为它也是空格,它会变得有些模棱两可。 – deceze

回答

4

您可以匹配和捕获前/后空格和结果与反向引用恢复,并删除所有其他的空格。

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

图案的详细资料

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

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

为了支持 过,交替使用,(?:\s| )

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