删除 javascript 中字符串中的多余空格

remove extra spaces in string in javascript

我有一段文字,在删除特殊字符 (!@#$%^&*()-=+`";:'><.?/) 后只显示字母和数字(以及浮点数,例如23.4 ) returns 一些额外的 space

    const input : 'this is a signal , entry : 24.30 and side is short';

    const text = input.replace(/\.(?!\d)|[^\w.]/g, " ").toUpperCase();

    console.log(text.split(" "))

输出:

[
  'THIS',   'IS',    'A',
  'SIGNAL', '',      '',
  '',       'ENTRY', '',
  '',       '24.30', 'AND',
  'SIDE',   'IS',    'SHORT'
]

但我想成为这样的人:

[
  'THIS',   'IS',    'A',
  'SIGNAL', 'ENTRY', '24.30',  
  'AND',    'SIDE',   'IS',     
  'SHORT'
]

并且当我替换 spaces 并输入空字符串时,returns this :

[ 'THISISASIGNALENTRY24.30ANDSIDEISSHORT' ]

我的代码有什么问题?

考虑匹配您想要生成单词数组的所有种类的字符,而不是替换。看起来你想要这样的东西:

const input = 'this is a signal , entry : 24.30 and side is short';
const matches = input.toUpperCase().match(/[\w.]+/g);
console.log(matches);

replace 方法中的第二个参数需要是一个空字符串,而不是代码中的 space。

就这样:

...
const text = input.replace(/\.(?!\d)|[^\w.]/g, "").toUpperCase();
...