要求输入字符串以使用某种格式

时间:2018-12-07 16:45:07

标签: javascript momentjs

似乎瞬间的日期解析功能没有按我期望的那样工作。 documentation说:

  

如果您知道输入字符串的格式,则可以使用该格式来解析时刻。

     

moment("12-25-1995", "MM-DD-YYYY");

我有以下代码:

moment(value, "MM/DD/YYYY");

在测试时,我输入的字符串不符合MM/DD/YYYY,但它们已成功解析为有效时刻。

例如,1-1-asdf解析为01/01/2018

如何指定一种或多种日期格式来进行字符串解析,如果它与指定格式不匹配,则解析时刻将无效?

2 个答案:

答案 0 :(得分:0)

要进行快速验证,可以使用正则表达式检查:

if (!/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/.test(value)) {
  // Invalid date string
}

答案 1 :(得分:0)

时刻具有解析日期的“严格”模式:

moment("1-1-asdf", "MM/DD/YYYY").toString() => valid, parsed as 01/01/2018
moment("1-1-asdf", "MM/DD/YYYY", true).toString() => invalid, parsed as "Invalid date"

有关更多信息,请参考https://momentjs.com/docs/#/parsing/string-format/