Regex необходим для разбора строки даты / времени - PullRequest
0 голосов
/ 11 января 2010

Может ли кто-нибудь предоставить мне регулярное выражение для следующего? (Используя Javascript)

исходная строка: Jan 2 2010 6:00PM

Я хочу, чтобы в результирующей строке отображалось только время, как показано ниже. (пример выше используется)

Строка результата: 6:00 PM

Ответы [ 5 ]

6 голосов
/ 11 января 2010

Заменить (\d{1,2}:\d{1,2})([AP]M) на \1 \2

Обновление: используйте \d{2} вместо \d{1,2}, если исходная строка гарантированно будет в формате HH:MM.

1 голос
/ 11 января 2010

Реализация комментария SilentGhost в регулярном выражении: /([^ ]+)([^ ]{2})$/

Это будет соответствовать последнему «слову», разделенному пробелом, с первым битом в группе 1 и двумя последними символами в группе 2. Вместо этого перевод в строковые операции должен быть прямым.

Вы также можете заменить (..) на [AP]M или аналогичный, если хотите, и можете получить небольшую валидацию, если вы создадите регулярное выражение для предотвращения чего-то вроде blah blah haha-I-gave-garbage-inputPM, но есть много способов в любом случае с мусором.

0 голосов
/ 11 января 2010

Если вам нужно преобразовать его в объект даты, и если вы используете Javascript в веб-браузере, вам может потребоваться это вместо этого:

new Date('Jan 2 2010 6:00PM'.replace(/(?=[AP]M)/i, ' '));
// Sat Jan 02 2010 18:00:00 GMT-0600 (Central Standard Time)

new Date('Jan 2 2010 6:00PM'.replace(/(?=[AP]M)/i, ' ')).toUTCString();
// Sun, 03 Jan 2010 00:00:00 GMT

Mozilla имеет справочную документацию по объекту Javascript Date .

0 голосов
/ 11 января 2010

Хотя я не смотрел, я уверен, что вы сможете найти что-то, что будет работать для вас на сайте Regex Library Однако я согласен с SilentGhost в том, что проще разбить строку. Просто убедитесь, что все DateTimes имеют одинаковый формат.

0 голосов
/ 11 января 2010

Вы можете использовать SimpleDateFormat в формате MMM dd yyyy HH:mm. Тогда вы можете получить часть времени.

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