AlexLearne Ответов: 2

Как сопоставить строку, окруженную двумя двоеточиями? Язык JavaScript


У меня есть следующее жало "
11:50:00
как я могу сопоставить минуты, которые равны 50?

Что я уже пробовал:

var minutes = str. match (/\: / d{2}\:/);//совпадения ": 50:", как я могу сопоставить только число?
Отредактированный:
Я уже выяснил, как сопоставить минуты с этим регулярным выражением arg. match(/\d{2} (?=:\d+$)/);
Проблема в том, что если пользователь вводит пробел перед ним, это все равно будет совпадать, как я могу это предотвратить?

Karthik_Mahalingam

var minutes = str. split (':') [1];

AlexLearne

Спасибо за ваш ответ, но регулярное выражение здесь действительно предпочтительнее, так как я хотел бы проверить, не набрал ли кто-нибудь 2 числа, а также строку, которая неприемлема. Через несколько минут мне нужно будет выполнить некоторые вычисления. Но ваше решение действительно работает)

2 Ответов

Рейтинг:
18

OriginalGriff

Попробуй:

(?<=\d+:)\d{2}(?=:\d+)

[редактировать]
Глупый язык Javascript - это регулярные выражения, которые не поддерживают lookbehind...: вздох:

Попробовать это:
\d{2}(?=:\d+$)
Он не так надежен, но будет работать в JS...
[/редактировать]


AlexLearne

Извините, это дает мне синтаксическую ошибку, должно ли это быть так?
str. match (/(?<=\d+:)\d{2} (?=:\d+)/) ?

OriginalGriff

Ответ обновлен.

AlexLearne

Ты просто спасатель, спасибо!

Patrice T

Похоже, коррекция заключается в том, чтобы удалить " <"
Моя ошибка

AlexLearne

Есть еще один последний вопрос: как я могу проверить, что никто не вводит пробел перед номером? На данный момент он принимает пробелы

OriginalGriff

К сожалению, вы не можете - символ "non-whitespace" будет включен в совпадение, потому что JS не поддерживает lookbehind, поэтому вы не можете сказать "match prefix but exclude it", что и было сделано оригинальным регулярным выражением. Если вы не можете исключить префиксы, то они должны быть частью совпадающей строки, а затем вы должны извлечь их как отдельную операцию. Противный.
К сожалению, мы застряли с JS, и это много, много недостатков в обозримом будущем...: вздох:

OriginalGriff

Я забыл, что JS также не поддерживает регулярные выражения должным образом! :смеяться:

AlexLearne

Большое вам спасибо, я думаю, мне придется использовать какой-то другой метод, в любом случае спасибо)

OriginalGriff

Пожалуйста!

Рейтинг:
1

Patrice T

Инструменты, чтобы помочь построить и проверить регулярное выражение
Регулярное Средство Выражения Эспрессо [^]
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
и этот, который также показывает ваше регулярное выражение в виде красивого графика:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]