Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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_String_Date - Fatal编程技术网

JavaScript:通过字符串掩码解析日期字符串

JavaScript:通过字符串掩码解析日期字符串,javascript,arrays,regex,string,date,Javascript,Arrays,Regex,String,Date,假设我有混合数据的字符串数组,例如 [Sam,2019-01,美国,2019-03,商业,无论如何,10.000…] 我必须提取日期[2019-01、2019-03…] 有没有通用的方法可以使用0000-00掩码的正则表达式 根据源数据,掩码可能为0000-00、0000 2019、0000-00-00 2015-03-25,甚至ABC 00 0000 2015年3月25日 提前感谢。您只需检查是否成功将其解析为最新对象: 常数测试=[ '02-20-2020', “2017年3月3日”, “

假设我有混合数据的字符串数组,例如

[Sam,2019-01,美国,2019-03,商业,无论如何,10.000…]

我必须提取日期[2019-01、2019-03…]

有没有通用的方法可以使用0000-00掩码的正则表达式

根据源数据,掩码可能为0000-00、0000 2019、0000-00-00 2015-03-25,甚至ABC 00 0000 2015年3月25日


提前感谢。

您只需检查是否成功将其解析为最新对象:

常数测试=[ '02-20-2020', “2017年3月3日”, “39 op”, “2000年2月5日”, '000-00-00', '2019-03' ]; 函数isDatestr{ return!!new Datestr.getTime } tests.forEacht=>console.logisDatet;
//输出:真,真,假,真,假,真前面的答案很优雅,但实际上我在寻找这个:

//2019-01 mask
var re = new RegExp(/[0-9]{4}\-[0-9]{2}/g, "i");
var str = "2019-01";

console.log(re.test(str)); //returns true

//Wed, 25 Sep 11
var re = new RegExp(/[A-Za-z]{3}\,\ [0-9]{2}\ [A-Za-z]{3}\ [0-9]{2}/g, "i");
var str = "Wed, 25 Sep 11";
console.log(re.test(str)); //returns true

甚至?请写下实际情况,不要留下未提及的可能相关的细节。再一次,我有一个字符串数组,具有不同的数据名称、日期、类别等。我必须使用筛选器查找其中的所有日期。比方说,这个数组包含2019-01格式的日期。所以我要做的是让[2019-01,2019-03]有点工作,但对于我的任务来说,令人惊讶的是很棒。干杯。这是非常不可靠的,有各种各样的字符串被一些实现识别为日期,而不是其他的,还有大量的有效时间戳没有被任何实现识别为日期。虽然我一次只需要一个掩码,并且它必须在控制之下,但这个解决方案要好得多。此外,这个面具可以是任何东西,不仅仅是约会。
//2019-01 mask
var re = new RegExp(/[0-9]{4}\-[0-9]{2}/g, "i");
var str = "2019-01";

console.log(re.test(str)); //returns true

//Wed, 25 Sep 11
var re = new RegExp(/[A-Za-z]{3}\,\ [0-9]{2}\ [A-Za-z]{3}\ [0-9]{2}/g, "i");
var str = "Wed, 25 Sep 11";
console.log(re.test(str)); //returns true