【问题标题】:Regex to replace date and hour正则表达式替换日期和时间
【发布时间】:2021-09-09 04:55:27
【问题描述】:

有人可以帮我做这个面具吗,日期部分没问题,但我不知道如何实现小时? 正则表达式是:(\d{2}\/)+(\d{4})\s*(\d{2}:\d{2})/

const onMask =  (v, mask) => {   
    if (!v) return;
    v = v.replace(/\D/g,'');
    switch(mask) {
        case 'datehour':
            v = v.replace(/(\d{2})(\d)/, '$1/$2');
            v = v.replace(/(\d{2})(\d)/, '$1/$2');
            v = v.replace(/(\d{4})(\d)/, '$1 $2');
            break;
    }

【问题讨论】:

  • 您的输入和预期输出是什么?
  • 答案已经解决了我的问题,没关系dd/mm/yyyy hh:mm,只是拥有各种面具也有几秒钟的时间。

标签: javascript regex mask


【解决方案1】:

使用类似的东西

var v = '23-12-2021 12-34' 
v = v.replace(/\D+/g, ''); 
v = v.replace(/^(\d{2})(\d)/, '$1/$2');
v = v.replace(/^(\d{2}\/\d{2})(\d)/, '$1/$2');
v = v.replace(/^(\d{2}\/\d{2}\/\d{4})(\d)/, '$1 $2');
v = v.replace(/^(\d{2}\/\d{2}\/\d{4} \d{2})(\d)/, '$1:$2');
console.log(v)

在重新格式化数据之前删除非数字字符,在预期的位置添加空格/斜杠/冒号。

【讨论】:

  • 完美无缺,我花了一整天的时间试图做到这一点,没有什么,只是完美。再来一个,如果我需要几秒钟,它是怎样的?
  • @LucianoCoelho 这将是相同的逻辑。添加v = v.replace(/^(\d{2}\/\d{2}\/\d{4} \d{2}:\d{2})(\d)/, '$1:$2');
猜你喜欢
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
相关资源
最近更新 更多