met*_*rce 2 javascript regex datetime date
我有这种日期格式:
DAY.month.YEAR (today: 28.06.2011)
Run Code Online (Sandbox Code Playgroud)
我需要一个正则表达式(RegEx)模式来匹配这个日期格式.
任何人都可以发布此问题的解决方案吗?
源自http://www.regular-expressions.info/dates.html:
(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d
Run Code Online (Sandbox Code Playgroud)
这与dd.mm.yyyy格式的日期在01.01.1900和31.12.2099之间匹配.但是,它仍将匹配无效日期,因为例如验证闰年不能用正则表达式完成(至少不是很容易).
但是,正则表达式可能是不必要的.Javascript示例:
var date = "28.06.2011".split("."); // split up the date by the dots
// parse the components into integers
var day = parseInt(date[0]);
var month = parseInt(date[1]);
var year = parseInt(date[2]);
// if you want the date in a date object, which will fix leap years (e.g. 31.02 becomes 03.03
var date = new Date(year, month - 1, day);
Run Code Online (Sandbox Code Playgroud)
请注意,创建日期对象month
时,从零开始.
您使用哪种方法取决于您需要的方法.如果要在文本中查找日期,请使用正则表达式.如果您只想将日期解析为日期对象,请使用第二种方法.为了确保日期有效,可能需要一些额外的验证,因为javascript Date
对象不关心2月有31天,它只是包含到3月3日.