Angular 13 Typescript RegExp 日期格式 dd/mm/yyyy

Angular 13 Typescript RegExp Date format dd/mm/yyyy

我在 Angular 13 项目中工作 我想创建一个指令以允许用户仅键入数字和 '/' 用于我的日期输入。 dd/mm/yyyy。 这是我的 Regx :

   if (!String(myVal).match(new RegExp(/^\d+$/))) {
        event.preventDefault();
    }

这种情况有效,但我只能输入数字,不能输入/来格式化我的日期。 修改我的 Regx 的任何建议。

此致

您只能使用正则表达式键入数字,因为 ^\d+$ 只允许输入数字。如果您正在寻找 RegEx 来验证最终日期,它看起来像这样:

"01/06/2022".match(/^\d{2}\/\d{2}\/\d{4}$/)

解释:

  • ^ 匹配字符串的开头
  • \d{2} 正好匹配两位数字
  • \d{4} 正好匹配四位数字
  • \/是一个转义正斜杠(/),你需要转义它
  • $匹配字符串结尾
  • 您不需要显式实例化 new RegExp,因为当您在两个 /.
  • 之间定义正则表达式时,它会自动完成

如果您正在寻找只允许输入日期中使用的字符的正则表达式,它看起来像这样:

"01/06".match(/^[\d\/]+$/)

将其理解为“只有在 [] 之间至少有一个字符(这就是 + 在这里的意思)才匹配,即:数字 (\d) 或 /".

当然,除了 Regex(Regex 允许像 99/99/9999 这样的日期)之外,还有其他方法可以在完全键入日期后验证日期。