Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Momentjs解析通配符_Javascript_Momentjs - Fatal编程技术网

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");