代码之家  ›  专栏  ›  技术社区  ›  panthro

每隔3-4个字符插入空格

  •  2
  • panthro  · 技术社区  · 7 年前

    我有这个:

    1231231234
    

    我希望每3-4个字符插入一个空格,因此格式如下:

    123 123 1234

    正则表达式可以这样吗?我有一些东西,进入一个空间,每3个字符,但我不知道如何做一个3和4个字符的混合,以获得上述格式。

    value.replace(/\B(?=(\d{3})+(?!\d))/g, " ");
    
    3 回复  |  直到 7 年前
        1
  •  4
  •   Nina Scholz    7 年前

    您可以使用带有lookahead的正则表达式。

    这个 Positive Lookahead 查找等号后的图案,但不将其包含在匹配中。

    function format(s) {
        return s.toString().replace(/\d{3,4}?(?=...)/g, '$& ');
    }
    
    console.log(format(1234567890));
    console.log(format(123456789));
    console.log(format(1234567));
    console.log(format(123456));
    console.log(format(1234));
    console.log(format(123));
        2
  •  0
  •   mrid    7 年前

    value = "1231231234";
    
    console.log(value.replace(/^(.{3})(.{3})(.*)$/, "$1 $2 $3"));
        3
  •  -1
  •   Osama    7 年前
    // add spaces after every 4 digits (make sure there's no trailing whitespace)
    somestring.replace(/(\d{4})/g, '$1 ').replace(/(^\s+|\s+$)/,'')