Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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和正则表达式的日期解析问题_Javascript_Arrays_Regex_D3.js - Fatal编程技术网

javascript和正则表达式的日期解析问题

javascript和正则表达式的日期解析问题,javascript,arrays,regex,d3.js,Javascript,Arrays,Regex,D3.js,因此,我一直在尝试获得一个使用d3.js的jsfiddle示例,其中它表示接受字符串输入,例如 "8/8/2011 12:00:00 AM" 使用该字符串可以通过使用正则表达式解析日期信息来创建日期对象 我一直在使用几乎相同的正则表达式。我试图捕获的格式是一个简单的MM/DD/YYYY,稍后我将通过将其传递到日期对象来进行实际验证 我为进行小型验证而提出的实际正则表达式模式是: (([01]?[0-2]|[0-9])(\/)([0-2]?[0-9]|3[01])(\/)((19|20)\d{2

因此,我一直在尝试获得一个使用d3.js的jsfiddle示例,其中它表示接受字符串输入,例如

"8/8/2011 12:00:00 AM"
使用该字符串可以通过使用正则表达式解析日期信息来创建日期对象

我一直在使用几乎相同的正则表达式。我试图捕获的格式是一个简单的MM/DD/YYYY,稍后我将通过将其传递到日期对象来进行实际验证

我为进行小型验证而提出的实际正则表达式模式是:

(([01]?[0-2]|[0-9])(\/)([0-2]?[0-9]|3[01])(\/)((19|20)\d{2}))
然而,我的模式给了我一些问题,它似乎与标志和匹配/验证有关。在没有任何标志的情况下验证良好,并获得所有匹配的日期,但如果在模式上放置全局标志(g),则将中断。然而,我需要为它设置全局标志(g),以便能够匹配我为测试字符串设置的所有日期。我对国旗是否真的重要感到困惑,希望得到一些澄清

在我的示例旁边,它停止给我任何提示或反馈。然而,我也很难让RegEx.exec(str)正常工作。我想我让它推送数组中的第一个条目,这将是我想要的日期字符串。然而,就像我说的,我没有收到任何反馈或警报弹出窗口,我已经设置。根据jsfiddle,我的javascript是有效的,所以我不知所措


我已经用我想做的事情的逻辑对它进行了评论,但是我已经尝试了我能想到的一切,并且不介意其他人看一眼,指出我可能遗漏的东西。

我知道这根本不使用正则表达式,但是你试过在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

更多信息请点击此处:

现在我觉得自己很傻,因为我不知道这一点,并且挣扎了几个小时。感谢您提供了更简单的选择。文档中列出了日期格式ISO8601和RFC2822,尽管它在不同浏览器中使用上述带有斜杠的日期格式似乎工作正常。D3提供了解析和格式化日期的函数,请参阅。