removeSpecialCharacters

removeSpecialCharacters

我正在尝试创建一个函数来删除所有特殊字符(包括句点)(撇号除外),因为它们自然是单词的一部分。我制作的正则表达式模式应该删除不符合word模式的所有内容,或者后跟撇号'和/或另一个word



function removeSpecialCharacters(str) {
  return str.toLowerCase().replace(/[^a-z?'?a-z ]/g, ``)
}

console.log(removeSpecialCharacters(`I'm a string.`))
console.log(removeSpecialCharacters(`I'm a string with random stuff.*/_- '`))
console.log(removeSpecialCharacters(`'''`))





从片段中可以看到,除了删除无赖撇号外,它运行良好。

如果我在模式中添加[\s'\s][']之类的内容,则会完全破坏它。为什么这样做,我在这里想念什么?

最佳答案

'\B替换模式,该模式将匹配并删除不带单词字符(例如ab'ab'@)的撇号,同时保留诸如ab'c之类的字符串:



function removeSpecialCharacters(str) {
  return str.toLowerCase().replace(/'\B|[^a-z'? ]/g, ``)
}

console.log(removeSpecialCharacters(`I'm a string.`))
console.log(removeSpecialCharacters(`I'm a string with random stuff.*/_- '`))
console.log(removeSpecialCharacters(`'''`))





(您也可以从字符集中删除重复的字符)

09-26 13:24