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

4

我有一个包含不同时间段的数组:

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]);
    }
};

你是否想匹配前两位数字?/^(?:0[6-9]|1[01])/ - Wiktor Stribiżew
基本上我需要修复正则表达式变量。 - Ambika Tewari
1
: 更改为 | - The fourth bird
值得一提的是,^06:^07:^08:^09:^10:^11可以匹配以"06:^07:^08:^09:^10:^11"开头的字符串(就像字面意思一样); 正则表达式遵循规则,使用指南/参考跟随指导练习以提高生产力 - 因为存在无限数量的无效模式 :} - user2864740
1
嗨@WiktorStribiżew,那个有效了。谢谢你。 - Ambika Tewari
2个回答

3
您可以选择一些需要的时间段,并仅使用一个开始指示器。

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);


1
正则表达式应该改为:^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 = new Array();
for (var i = 0; i < timeArray.length; i++) {
  var bar = /^06|^07|^08|^09|^10|^11/;
  if (bar.test(timeArray[i])) {
    console.log("found desired timeslots: " + timeArray[i]);
    resultArray.push(timeArray[i]);
  }
};


1
如果您重复使用字符串锚定符号,您在此处不需要分组结构。var bar = /^06|^07|^08|^09|^10|^11/; 就可以了。 - Wiktor Stribiżew
@WiktorStribiżew 是的,你说得对。我已经更新了答案。 - gil.fernandes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接