我已经尝试了这个函数从字符串中删除所有符号和额外的空格,并返回一个纯单词字符串:
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()
来清除它。