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



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

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

这个条件有效,但是我只能输入数字,不能输入/来格式化我的日期。有什么建议可以修改我的Regx

你只能用Regex输入数字,因为^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这样的日期)之外,还有其他方法可以验证完整键入的日期。

最新更新