我已经看到你可以使用“.isValid()”函数来检查给定的字符串是否为日期格式:
moment('2007-05-05', 'YYYY-MM-DD', true).isValid()
但有没有办法确认格式是否正确?例如:
'YYYY-MM-DD'
应该返回true
,但
'YYYY-MM-DDsadsadl'
应该返回false
,因为字符串末尾的字符不是有效的DateTime字符。
我们正在开发一种工具,允许用户输入现有的日期格式,然后输入第二个输入以输入所需的格式,但我们需要验证以确保字符串可以正确解析和转换,但它们不是'输入特定日期。
应用程序必须接受任何所有可能的日期格式。
答案 0 :(得分:2)
使用以下功能验证您的格式。
validFormat = function(inputFormat){
var validation = moment(moment('2017-06-17').format(inputFormat)).inspect();
if(validation.indexOf('invalid') < 0)
return true;
else
return false;
}
花一些时间来理解这一点。这只是使用inspect()进行反向验证。日期2017-06-17
可以由任何有效日期替换。
这个Moment Js Docs将帮助您识别有效格式。
只需调用此函数
即可validFormat('YYYY MM DD')
答案 1 :(得分:0)
const getIsValid = inputFormat => moment(moment().format(inputFormat)).isValid()
说明:
moment().format(inputFormat)
-使用该格式从当前时间创建日期字符串
然后用moment()
包裹它,使该字符串成为moment
日期对象。最后,我们在该isValid()
日期对象上调用moment
属性。