【问题标题】:how to remove more than one space between two words of string in angular?如何在角度字符串的两个单词之间删除一个以上的空格?
【发布时间】:2019-05-04 12:44:32
【问题描述】:
this.folderObj.folderName 是字符串,我打印该字符串aaa aaa 的console,我使用trim() 但它只删除前后空格,如何删除两个字符串单词之间的多个空格并想要像这样输出aaa aaa
folderObj : Folder = new Folder();
console.log(this.folderObj.folderName.trim()); // aaa aaa
我想要的预期控制台
console.log(this.folderObj.folderName.trim()) // aaa aaa
【问题讨论】:
标签:
javascript
html
css
angular
【解决方案1】:
使用正则表达式匹配两个或多个空格字符,并替换为单个空格:
const folderName = ' aaa aaa';
console.log(
folderName
.replace(/ {2,}/g, ' ')
.trim()
);
当然,你也可以用+匹配一个或多个空格字符,代码看起来会更好,但效率会稍微低一些:
const folderName = ' aaa aaa';
console.log(
folderName
.replace(/ +/g, ' ')
.trim()
);
【解决方案2】:
尝试使用replace() 将所有单个和多个空格替换为单个空格。
this.folderObj.folderName.trim().replace(/ +/g, ' ');
演示:
console.log('aaa aaa'.replace(/ +/, ' '))
【解决方案3】:
let folderName = ' abcd xya ';
console.log(folderName.replace(/\s+/g, ' ').trim());
【解决方案4】:
const folderName = " aaa aaa";
let resultStr = folderName
.trim()
.split(' ')
.filter(item => item.length > 0)
.join(' ');
console.log(resultStr);