【问题标题】:remove space from string between all numbers and percentage (javascript regex)从字符串中删除所有数字和百分比之间的空格(javascript regex)
【发布时间】:2018-01-18 01:09:31
【问题描述】:

我必须删除数字和百分号之间的所有空格。字符串也可以包含所有其他符号。应该只删除数字和百分比之间的空格,而不是任何其他符号和百分比。

例子:

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;

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    代码

    See regex in use here

    (\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
    • +匹配一个或多个空格
    • (?=%) 积极的前瞻确保接下来是 %

    【讨论】:

    • 这似乎有效。我只是不知道替换是如何工作的(也不知道这叫做替换......):)
    • 或者,/(?<=\d) +(?=%)/g 与 ''(空字符串)替换做同样的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2013-01-16
    • 2019-11-25
    • 2021-12-02
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多