我试图从JavaScript中的字符串中获得模式,其中我的字符串是01-01-2000 - 01-01-2010
在这里我想使这两个日期像date1 = 01-01-2000
和date2 = 01-01-2010
一样分开。
我试过这个代码:
var date = "01-01-2000 - 01-01-2010";
var date2 = date.match(/([0-9]{2})-([0-9]{2})-([0-9]{4})/);
console.log(date2[0]);
output: 01-01-2000 [correct]
但我使用console.log(date2[1])
,它只显示01
。
请帮助如何实现这个功能的目标。
期望输出:
date[0]: 01-01-2000
date[1]: 01-01-2010
您可以尝试String.matchAll()
,它返回一个迭代器,其中包含与正则表达式匹配的字符串的所有结果,包括捕获组。
<<p>演示strong>:
var date = "01-01-2000 - 01-01-2010";
var date2 = [ ...date.matchAll(/([0-9]{2})-([0-9]{2})-([0-9]{4})/g) ];
for (const match of date2) {
console.log(match[0])
}
如果你的日期格式是固定的,你可以使用split。
var date = "01-01-2000 - 01-01-2010";
var date2 = date.split(" - ")
console.log(date2);
如果你想使用模式,你只需要在字符串的末尾添加/g来进行全局搜索:
var date = "01-01-2000 - 01-01-2010";
var date2 = date.match(/([0-9]{2})-([0-9]{2})-([0-9]{4})/g);
console.log(date2[0]);
console.log(date2[1]);