删除字符串中除'字符外的所有标点符号

时间:2019-02-14 13:50:45

标签: javascript

按照这个问题How can I strip all punctuation from a string in JavaScript using regex?,我正在尝试从'字符之外的字符串中删除所有标点符号,以避免弄乱诸如此类的单词:

  • 不会
  • 不要
  • 不会

到目前为止,我已经尝试了以下方法:

return word.replace(/[^\w\s]|_\'/g, "")
          .replace(/\s+/g, " ");;

但是它仍在删除'字符。知道如何实现这样的结果吗?

3 个答案:

答案 0 :(得分:4)

将转义的撇号移动到排除的字符类:/[^\w\s\']|_/g

答案 1 :(得分:0)

您可以使用此正则表达式

console.log("I'm strong !".replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g,""))

答案 2 :(得分:0)

在排除块中,将单引号添加到您的正则表达式中:

const str = "This., -/is #! a ;: {} = - string$%^&* which `~)() doesn't, have any)( punctuation!";

const noPunctation = str.replace(/[^\w\s']|_/g, '').replace(/\s+/g, ' ');

console.log(noPunctation);