Javascript Momentjs解析通配符
在Javascript Momentjs解析通配符,javascript,momentjs,Javascript,Momentjs,在momentjs中,有没有一种方法可以在严格解析输入时接受通配符 通过将true作为第三个参数传递,严格解析输入 我想住宿DD/MM/YYYYDD-MM-YYYYDD.MM.YYYYDD-MM-YYYY。 我可以将它们全部添加到一个数组中,但我更喜欢使用*或,因此我不必维护列表。是否可以在忽略分隔符的情况下严格要求日期格式 moment('12/12/2012', ["DD/MM/YYYY", "DD-MM-YYYY", "DD.MM.YYYY", "DD MM YYYY"], true).i
momentjs
中,有没有一种方法可以在严格解析输入时接受通配符
通过将true
作为第三个参数传递,严格解析输入
我想住宿DD/MM/YYYY
DD-MM-YYYY
DD.MM.YYYY
DD-MM-YYYY
。
我可以将它们全部添加到一个数组中,但我更喜欢使用*
或
,因此我不必维护列表。是否可以在忽略分隔符的情况下严格要求日期格式
moment('12/12/2012', ["DD/MM/YYYY", "DD-MM-YYYY", "DD.MM.YYYY", "DD MM YYYY"], true).isValid() === true;
// ideally ignore delimiter type, this evaluates to false
moment('12/12/2012', "DD*MM*YYYY", true).isValid() === false;
严格解析在逻辑上与通配符相反。例如,您可能希望拒绝
'01/01-2020'
这就是您使用的变体的具体用途(严格的多格式)
对于非严格要求的情况,这一点相当清楚:
解析器忽略非字母数字字符,因此以下两个将返回相同的内容
请共享您的代码…@ParthRaval这是代码<代码>时刻('12/12/2012',[“DD/MM/YYYY”,“DD-MM-YYYY”,“DD.MM.YYYY”,“DD-MM-yyyyy”],true.).isValid()。是否可以解析通配符
矩('2012年12月12日',“DD*MM*YYYY”,true)。isValid()
您是对的,这会解决DD/MM/YYYY的分隔符选项。但如果您试图验证更特殊的格式,如信用卡到期日MM/YYYY。用户可以输入完整的日期及其有效的时刻('12/12/2012','MM/YYYY')。isValid()
比解析任何看起来像日期的字符串都更糟糕时刻('asdfsff12/12/2012adsfadfdsf233','MM/YYYY')。isValid()
@Lex-你说得对,不严格是一个次选项。除此之外,正如我所回答的,严格解析没有任何灵活性,因为这是严格的定义质量。
moment("12-25-1995", "MM-DD-YYYY");
moment("12/25/1995", "MM-DD-YYYY");