我必须删除数字和百分号之间的所有空格。 String也可以包含所有其他符号。应仅在数字和百分比之间删除空格,而不是任何其他符号和百分比。
示例:
str = "test 12 %"; // expected "test 12%"
str = "test 1.2 %"; // expected "test 1.2%"
str = "test 1,2 % 2.5 %"; // expected "test 1,2% 2.5%"
str = " % test 1,2 % 2.5 % something"; // expected " % test 1,2% 2.5% something"
我认为我已设法创建匹配"十进制数字与百分号"的正则表达式,但是,我不知道怎么做"替换此匹配数字中的空格"。
var r = /\(?\d+(?:\.\d+)? ?%\)? */g;
答案 0 :(得分:2)
(\d) +(?=%)
替换:$1
const regex = /(\d) +(?=%)/g
const a = ['test 12 %','test 1.2 %','test 1,2 % 2.5 %',' % test 1,2 % 2.5 % something']
const subst = `$1`
a.forEach(function(str) {
console.log(str.replace(regex, subst))
})

(\d)
将数字捕获到捕获组1
+
匹配一个或多个空格(?=%)
确定以下内容的正向前瞻是%