我有一个Javascript数组字符串,想要提取符合此格式DD/MM/YYYY
的日期。
暂时你可以检查一下:
moment("31/12/2015", "DD/MM/YYYY").isValid(); -> true
然而,这些也被视为有效日期,当时他们不应该:
moment("1", "DD/MM/YYYY").isValid(); -> true
moment("1/", "DD/MM/YYYY").isValid(); -> true
moment("1/1", "DD/MM/YYYY").isValid(); -> true
知道如何强制执行严格的字符串验证吗?
答案 0 :(得分:0)
您希望在解析中使用严格模式。严格模式将使Moment仅匹配与格式字符串完全匹配的输入。只需将true作为第三个参数传递:
moment("1", "DD/MM/YYYY", true).isValid();
false
moment("1/", "DD/MM/YYYY", true).isValid();
false
moment("1/1", "DD/MM/YYYY", true).isValid();
false
请注意,在严格模式下,使用DD和MM令牌,Moment将开始预期两位数的日期和月份。因此:
moment("1/1/2016", "DD/MM/YYYY", true).isValid();
false
moment("01/01/2016", "DD/MM/YYYY", true).isValid();
true
你可能想要去一个字母的代币。然后任何一个都可以工作:
moment("01/01/2016", "D/M/YYYY", true).isValid();
true
moment("1/1/2016", "D/M/YYYY", true).isValid();
true
有关解析指南中严格模式的方式和原因的更多信息:http://momentjs.com/guides/#/parsing/strict-mode/