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

Regex如何为日期-时间字符串匹配特定字符的前2个实例

  •  2
  • Alfonse  · 技术社区  · 1 年前

    在JavaScript中,我有一个这样的日期格式:

    2023-11-02 10:00:00 -0700
    

    我只想匹配 - 2023-11-02之间的符号,但与 - 在0700前面,然后用 / 以便最终输出

    2023/11/02 10:00:00 -0700
    

    我尝试进行正则表达式匹配: ("2023-11-02 10:00:00 -0700").replace(/[^\d\:\ ]{1,2}/g, '/'); 但仍与 - 在0700前面,输出为 '2023/11/02 10:00:00 /0700' 这是无效的。

    1 回复  |  直到 1 年前
        1
  •  2
  •   anubhava    1 年前

    您可以使用此正则表达式进行匹配:

    /(?<=\d)-(?=\d)/g
    

    此处:

    • (?<=\d) 在匹配之前确保有一个数字 -
    • (?=\d) 确保匹配后有一个数字 -

    然后用 /

    RegEx Demo

    const s = '2023-11-02 10:00:00 -0700';
    
    var r = s.replace(/(?<=\d)-(?=\d)/g, '/');
    
    console.log(r);