我需要用javascript语言从字符串内部删除空格。左右两侧可以有这个空间。我找不到解决方案......
也许是一些原生功能?或者sombedy有一些正则表达式?
我只有:
str = str.replace(/\s+/g, '');
但它也会从侧面移除空白区域。
我想:
var str = " s dasd asd sad sa d ";
str = str.replace(/\s+/g, '');
// output
" sdasdasdsadsad ";
答案 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'));