如何正确地从字符串中删除所有额外的空格和符号



我已经尝试了这个函数从字符串中删除所有符号和额外的空格,并返回一个纯单词字符串:

function simplify(string) {
return string.toLowerCase()

.replace(/,|?|!|:|.|*|/|//g,'')
.trim().replace(/n/g, " ")
}

const string = "   this    is  !   *     ? ear :: ! ?  *****  ";
console.log(simplify(string))

如你所见,还有额外的空格。

期望的结果是:

"这是耳朵">

如何以最有效的方式实现这一点(在性能的情况下)不简单的代码)

您当前的模式甚至没有包含任何内容来覆盖空白。我将使用这个版本:

var string = "   this    is  !   *     ? ear :: ! ?  *****  ";
var output = string.replace(/[^A-Za-z0-9]+/g, " ").trim();
console.log(output);

这里我们只是删除1个或多个非字母/数字字符的组,然后用一个空格替换。这里有一个边缘情况,可能会导致在字符串的开始或结束处出现一个额外的空间,所以我们调用trim()来清除它。

最新更新