我在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
这样的日期)之外,还有其他方法可以验证完整键入的日期。