【发布时间】:2013-09-25 06:05:51
【问题描述】:
运行 moment.js,2.2.1
moment("2010-10-319", ["YYYY-MM-DD"]).isValid()
...返回true,moment 对象将设置为 2010 年 10 月 31 日。解析器似乎去除了任何类型的无关字符:
moment("2010-10-31a", ["YYYY-MM-DD"]).isValid(); // true
好奇者,如果您添加额外的格式选择,那么“剥离”将仅限于一个字符! (格式字符串测试不应该是 ORed 吗?)
moment("2010-10-319", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // true
moment("2010-10-3199", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // false (!!!)
这是设计使然吗?我不明白为什么。
编辑:一位评论者发现了另一种情况,其中一个之外的额外字符确实被剥离了:
moment("2010-10-319qr", ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"]).isValid(); // true (!)
这是在行动:http://jsfiddle.net/grahampcharles/r42jg/6/(更新为新案例)
【问题讨论】:
-
我正在使用报告 ( "2010-10-319qr" , ["MM/DD/YYYY", "MM-DD-YYYY", "YYYY-MM-DD"] );它给出了 // true。
-
有趣的转折——所以剥离不一致。我已经更新了小提琴。
标签: javascript date momentjs