Как я могу извлечь все 24 часа из строки с помощью регулярных выражений? - PullRequest
0 голосов
/ 25 февраля 2020

Я хочу извлечь все 24 часа внутри строки.

Пример строки, из которой я хочу извлечь время, может быть:

The image has been uploaded at 20:12 and viewed at 21:04 and later was deleted around 23:43

Есть 3 раза Я хочу извлечь из этого примера строку:

  • 20: 12
  • 21: 04
  • 23: 34

I ' мы попробовали этот шаблон:

^(([1-9]{1})|([0-1][0-9])|([1-2][0-3])):([0-5][0-9])$

Но кажется, что он проверяется, только если время правильное.

1 Ответ

2 голосов
/ 25 февраля 2020

Вы можете использовать

let string = `The 30:1234 image has been uploaded at 20:12 and viewed at 21:04 and later was deleted around 23:43`;

let rx = /(\d+):(\d+)/g;

let match;

while ((match = rx.exec(string)) !== null) {
    if ((match[1] >= 0 && match[1] <= 24) && (match[2] >= 0 && match[2] <= 60)) {
        console.log(match[0]);
    }
}

Здесь вы сопоставляете любой шаблон digits:digits и проверяете его на соответствие правильным диапазонам в пределах JavaScript впоследствии. Таким образом, например, 30:1234 будет игнорироваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...