Javascript 在数组中查找多个正则表达式

Javascript 在数组中查找多个正则表达式,javascript,regex,Javascript,Regex,我有一个包含各种时隙的数组: var timeArray = ["00:05 - 02:50", "03:05 - 05:50", "05:10 - 07:55", "06:25 - 09:10", "07:55 - 10:40", "09:00 - 11:45", "15:10 - 17:55", "17:05 - 19:45", "18:50 - 21:35", "19:40 - 22:25", "20:45 - 23:40", "22:00 - 00:45", "22:40 - 01:25

我有一个包含各种时隙的数组:

var timeArray = ["00:05 - 02:50", "03:05 - 05:50", "05:10 - 07:55", "06:25 - 09:10", "07:55 - 10:40", "09:00 - 11:45", "15:10 - 17:55", "17:05 - 19:45", "18:50 - 21:35", "19:40 - 22:25", "20:45 - 23:40", "22:00 - 00:45", "22:40 - 01:25", "11:55 - 16:15"]
我想搜索06-12之间的所有时隙,并将它们放入一个数组中。我在下面写了js,但这返回了一个空数组:

var resultArray = new Array();
for (var i = 0; i < timeArray.length; i++) {
    var bar = /^06:^07:^08:^09:^10:^11/;
    if (bar.test(timeArray[i])) {
        alert("found desired timeslots");
        resultArray.push(timeArray[i]);
    }
};
var resultArray=new Array();
对于(var i=0;i
正则表达式应该是:
^06 | ^07 | ^08 | ^09 | ^10 | ^11
。另一个更简洁的选择是:
/^0[6-9]| ^1[01]/

可运行的示例如下:

var timeArray=[“00:05-02:50”,“03:05-05:50”,“05:10-07:55”,“06:25-09:10”,“07:55-10:40”,“09:00-11:45”,“15:10-17:55”,“17:05-19:45”,“18:50-21:35”,“19:40-22:25”,“20:45-23:40”,“22:00-00:45”,“22:40-01:25”,“11:55-16:15”]
var resultArray=新数组();
对于(var i=0;i};您可以根据需要的时间选择一些组,并且只使用一个开始指示器

var timeArray=[“00:05-02:50”,“03:05-05:50”,“05:10-07:55”,“06:25-09:10”,“07:55-10:40”,“09:00-11:45”,“15:10-17:55”,“17:05-19:45”,“18:50-21:35”,“19:40-22:25”,“20:45-23:40”,“22:00-00:45”,“22:40-01:25”,“11:55-16:15”],
resultArray=timeArray.filter(s=>/^(0[6-9]| 1(0 | 1))/.test(s));

console.log(resultArray)您的意思是匹配前两个数字吗<代码>/^(?:0[6-9]| 1[01])/
?基本上我需要修复正则变量将
更改为
FWIW,
^06:^07:^08:^09:^10:^11
匹配以“06:^07:^08:^09:^10:^11”开头的字符串(类似字面意思);正则表达式遵循规则并提高生产率——因为存在无限多无效模式:}Hi@WiktorStribiżew有效。谢谢。如果您重复字符串锚点的开头,这里不需要分组构造<代码>变量栏=/^06 | ^07 | ^08 | ^09 | ^10 | ^11/可以。@WiktorStribiżew是的,你是对的。我已经更新了答案。