有没有比这更好的方法来在 JS 的字符串中查找和删除额外的 space?

Is there better way than this to find and remove additional space in string in JS?

我有以下功能,它检测是否有 2 个 space 并删除一个:

filterText(text) {
    
        if (text.indexOf('  ') >= 0) {
          return text.replace('  ', ' ')
        }
        return text
      }
    

有没有更好的方法达到同样的效果?

String.prototype.replace()

If pattern is a string, only the first occurrence will be replaced.

您可以使用 String.prototype.replaceAll() 或尝试使用带有全局标志的 RegEx。

以下示例将使用单个 space 删除 2 个或更多 space:

text = `some  text,  more      text`;
text = text.replace(/\ +/g, ' ');
console.log(text);

如果你想精确匹配 2 space 那么:

text = text.replace(/\ {2}/g, ' ');

不需要if声明。够了replaceAll

function filterText(text) {
  return text.replaceAll('  ', ' ')
}

console.log(filterText('a  df sf s  fsf'))

您可能不需要函数。您可以像这样直接编写代码,假设 text 是有问题的变量:

text.replace( /\s{2}/g, ' ' )

g 代表组,将为您找到字符串中所有匹配的匹配项。