java脚本中的Regex日期模式yyyy-mm-dd javascript

Regex date pattern yyyy-mm-dd javascript in java script?

本文关键字:模式 yyyy-mm-dd javascript 日期 Regex 脚本 java      更新时间:2023-09-26

Regex日期模式yyyy-mm-ddjavascript在java脚本中,要比较表单中的起始日期和截止日期,需要检查截止日期是否超过起始日期,并且日期是否应该相同?

您不需要任何正则表达式,可以使用Date.parse读取ISO-8061格式的日期并直接进行比较:

var date1 = Date.parse("2015-12-14");
var date2 = Date.parse("2015-12-15");
return date1 < date2; // true

注意,Date.parse实际上返回一个integer值。如果无法将字符串解析为日期,则返回NaN

使用Date(string)构造函数获取实际的Date实例:

var date1 = new Date("2015-12-14");
var date2 = new Date("2015-12-15");
return date1 < date2; // true

但是,Date(string)构造函数将在无效输入时抛出异常,因此,如果您需要首先测试日期,请执行以下操作:

var isValidDate = !isNaN( Date.parse( dateString ) );
if( isValidDate ) return new Date( dateString );

或者,如果你觉得效率很高,并且想避免对字符串进行两次解析:

var timestamp = Date.parse( dateString );
if( !isNaN( timestamp ) ) return new Date( timestamp );

您不需要正则表达式。事实上,你甚至不需要像@Dai建议的那样解析日期。ISO-8601格式的日期可以作为字符串进行比较:

'2015-12-14' < '2015-12-15' // true
'2015-12-20' == '2015-12-20' // true

字符串的字母排序将按时间顺序产生日期,这是因为排序,即先是年,然后是月,然后是天,并且因为个位数中的前导0,例如04 < 10

当然,这意味着字符串始终是有效的ISO-8601日期。