javascript和regex的日期解析问题
Date parsing troubles with javascript and regex
因此,我一直在尝试获得一个使用d3.js的jsfiddle示例,它表示接受字符串输入,例如;
"8/8/2011 12:00:00 AM"
使用该字符串可以通过regex解析日期信息来创建日期对象。
我一直在使用与此版本几乎相同的正则表达式。我试图捕获的格式是一个简单的MM/DD/YYYY,稍后我将通过将其传递到Date对象来进行实际验证
我为进行小型验证而想出的实际regex模式是:
(([01]?[0-2]|[0-9])('/)([0-2]?[0-9]|3[01])('/)((19|20)'d{2}))
然而,我的模式给我带来了一些问题——它似乎与标志和匹配/验证有关。Rubular在没有任何标志的情况下验证良好,并匹配所有日期,但如果我将全局标志(g)放在模式上,则会中断。然而,对于regex101,我需要放置全局标志(g),以便它能够匹配我为测试字符串设置的所有日期。我很困惑国旗是否真的重要,希望能澄清一下。
在我的jsfiddle示例旁边,它停止给我任何警告或反馈。然而,我也很难让RegEx.exec(str)像我想要的那样正常工作。我想我让它推送数组中的第一个条目,这将是我想要的日期字符串。然而,正如我所说,我没有得到任何反馈或弹出的警报,我已经设置。根据jsfiddle的说法,我的javascript是有效的,所以我不知所措。
我用我想做的事情的逻辑来评论这一切,但我已经尝试了我能想到的一切,不介意别人看一眼,指出我可能错过的东西。
我知道这根本没有使用regex,但您尝试过在javascript中使用Date.parse()函数吗?在你的情况下,你可以这样做:
var dateString = "8/10/2011 12:00:00 AM"; // used different month to date for highlighting purposes
var date = new Date();
date.setTime(Date.parse(dateString));
date.getFullYear(); // returns 2011;
date.getMonth() // returns 7 (months are 0-11)
date.getDate(); // returns 10
更多信息请点击此处:MDN Date.parse()
相关文章:
- Angular UI启动日期选择器问题
- JSP 中的“日期”字段存在问题
- 这个正则表达式的日期/时间有什么问题
- Javascript/Json日期转换问题
- javascript日期时区问题
- D3 折线图示例 - 日期有问题
- AngularJS引导日期选择器 - 每周的一天问题
- 日期 ISO 日期字符串问题
- 关闭问题上的日期选择器
- 使用一个非常简单的日期选择器时遇到问题
- 高位/高位股票无效日期问题
- 浏览器之间的Javascript日期问题
- 日期选择器UI存在问题
- 使用WebApi/MVC4/Dockout输出日期时出现问题
- 日期选择器的ng更改问题
- 引导从日期到日期的日期选择器问题
- 使用setMonth时出现Javascript日期问题
- 使用jQuery日期选择器编辑单元格时出现AngularJS ngGrid问题
- 尝试使用名称访问表中字段的日期选取器时出现问题
- JavaScript函数问题(日期)