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