在momentjs
中,有一种方法可以在严格解析输入时接受通配符吗?
通过传递true
作为第三个参数来严格解析输入。
我想容纳DD/MM/YYYY
DD-MM-YYYY
DD.MM.YYYY
DD MM YYYY
。
我可以将它们全部添加到一个数组中,但是我更喜欢使用*
或.
,因此我不必维护列表。忽略分隔符是否可以严格要求日期格式?
moment('12/12/2012', ["DD/MM/YYYY", "DD-MM-YYYY", "DD.MM.YYYY", "DD MM YYYY"], true).isValid() === true;
// ideally ignore delimiter type, this evaluates to false
moment('12/12/2012', "DD*MM*YYYY", true).isValid() === false;
答案 0 :(得分:1)
严格解析在逻辑上与通配符相反。例如,您可能想拒绝'01/01-2020'
。
这就是您正在使用的变体的形式(严格的多格式)。
对于非严格情况,documentation很清楚:
解析器将忽略非字母数字字符,因此以下两个都将返回相同的内容。
moment("12-25-1995", "MM-DD-YYYY");
moment("12/25/1995", "MM-DD-YYYY");