2013-07-17 3 views
0

Я пытаюсь принять это регулярное выражение, которое в настоящее время используется в Java-приложении и использует его с javascript.JS - Регулярное выражение для 12hr Time Matching

(1[012]|[1-9]):[0-5][0-9](\\s)?(?i)(am|pm) 

Однако, я сталкиваюсь с проблемами. Первоначально я получал ошибку SyntaxError: invalid quantifier. Таким образом, я избежала ? и в конечном итоге с

(1[012]|[1-9]):[0-5][0-9](\s)?(\?i)(am|pm) 

Однако, когда я бегу следующий тест, он не соответствует должным образом:

"1:00 am".match(/(1[012]|[1-9]):[0-5][0-9](\s)?(\?i)(am|pm)/) 

Это регулярное выражение должно быть соответствие «1:00 утра», « 1:00 am "," 1:00 AM "

Куда я иду не так?

+0

Может быть, я что-то не хватает; что делает эта часть ?: "(\? i)". Это означает, что буквально ищет «? I» в вашей строке. – Katana314

ответ

3

Попробуйте

"1:00 am".match(/(1[012]|[1-9]):[0-5][0-9]\s?(am|pm)/i) 

игнор случай флаг i должен быть в конце регулярного выражения

+0

Ах, вот и все. Узнавайте что-то новое каждый день. Спасибо. –

Смежные вопросы