我在使用 Javascript 解析用户输入时遇到问题,我无法让解析器正确接受 ddMMyyyy 中的日期。当有分隔符时,它会正确解析。
下面的示例使用的是DateJS(新西兰本地化),我已经对较新的MomentJs进行了初步尝试(这对于输入验证来说并不理想)。如果他们要充分处理输入案例,我对其他框架持开放态度。
我的测试用例:
// Parses correct value
var dateWithHyphens = Date.parse('01-06-2012');
// Parses incorrectly, using MMddyyy, instead of ddMMyyyy
var dateWithoutHyphens = Date.parse('01062012');
// Parses incorrectly, using MMddyyy, instead of ddMMyyyy
var dateWithFormat = Date.parse('01062012', { format: 'ddMMyyyy'});
我为此创建了一个 JSFiddle:http: //jsfiddle.net/ajwxs/1
测试用例应该返回 6 月 1 日,但不正确的会返回 1 月 6 日。(这是输入解析 - 输出格式为时已晚)。
关于是否可以更好地促使 JSDate 使用正确的格式来解析这些日期的任何建议?
更新
在这个应用程序中,我验证了许多可能的用户输入,包括:
01062012
01/06/2012
010612
这将使 parseExact 样式的实现有点冗长......