Альтернатива для обратного просмотра регулярного выражения не поддерживается в FF и IE - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь извлечь строку из URL-адреса. Я использую vuejs, но маршрутизатор не может использоваться, поскольку страница является URL-адресом обратного вызова, возвращаемым AWS Cognito OID C signin.

URL-адрес выглядит следующим образом:

http://localhost:8080/callback#id_token=eyJ...&access_token=eyJ...&expires_in=3600&token_type=Bearer&state=xxx

Это нормально, если для маршрутизатора vue есть решение для обработки знака ha sh, чтобы я мог использовать:

this.$route.query.id_token

На данный момент я получаю токен, используя:

const matches = this.url.match(/(?<==).*(?=&acc)/i);

Который поддерживается только Chrome. Он получает все, что угодно, например, символ '=' и строку '& a cc'. Для того, что я хочу сделать, id_token или access_token эквивалентны.

Как я могу получить строку токена без просмотра назад?

1 Ответ

1 голос
/ 09 июля 2020

Вы можете попробовать:

.*id_token=(.*?)&.*

Объяснение приведенного выше регулярного выражения:

  • .* - Жадно соответствует всему до id_token=.
  • id_token= - соответствует id_token= буквально.
  • (.*?) - представляет группа захвата, соответствующая всему до &.
  • .* - Жадно сопоставляет все после &.

Pictorial Representation

Regex Demo

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