【问题标题】:Formatting a string to a certain format将字符串格式化为特定格式
【发布时间】:2017-02-19 18:11:40
【问题描述】:

我正在寻找一种方法来重新格式化电话号码以在 Javascript 中显示。以下是部分数据的示例:

00-22 345 991

555922134

12450-123948

我想将数字重新格式化为以下 3 种长度格式,例如:555-922-134

假设可以忽略破折号和空格,最后两个块的长度可以为 2,例如:002-234-59-91124-501-349-48

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

    Positive Lookahead 查找等号后的模式,但不包括在匹配中。

    x(?=y)

    仅当 'x' 后跟 'y' 时才匹配 'x'。这称为前瞻。

    例如,/Jack(?=Sprat)/ 仅在其后跟“Sprat”时才匹配“Jack”。 /Jack(?=Sprat|Frost)/ 仅在 'Sprat' 或 'Frost' 后跟 'Jack' 匹配。但是,“Sprat”和“Frost”都不是匹配结果的一部分。

    function format(s) {
        return s.toString().replace(/\D/g, '').replace(/\d{2,3}(?=..)/g, '$&-');
    }
    
    console.log(format('00-22 345 991'));
    console.log(format('555922134'));
    console.log(format('12450-123948'));
    console.log(format(123456789));
    console.log(format(12345678901));
    console.log(format(1234567));

    【讨论】:

      【解决方案2】:

      晚上好! :)

      这已在上一个帖子中得到解答。 :)

      Insert hyphens in javascript

      希望这会有所帮助 - 祝你晚安:)

      【讨论】:

        猜你喜欢
        • 2011-09-27
        • 2017-04-09
        • 2019-08-18
        • 2020-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        • 1970-01-01
        相关资源
        最近更新 更多