Неверное регулярное выражение: нечего повторять Ошибка консоли Safari - PullRequest
0 голосов
/ 09 октября 2019

Итак, у меня есть код, который отлично работает в других браузерах, но не работает на iPhone и браузере Safari. Когда я отлаживаю, он говорит «Недопустимое регулярное выражение: нечего повторять» для следующего кода.

  function getURLParameter(a) {
    a = (new RegExp("[?|&]" + a + "=([^&;]+?)(&|#|;|$)")).exec(location.search);
    if (null == a) return null;
    a = a[1];
    a = a.replace(/+/g, "%20");
    return decodeURIComponent(a)
}

Любая помощь, которую вы можете предоставить, будет принята с благодарностью.

1 Ответ

5 голосов
/ 09 октября 2019

Ваша проблема возникла из a = a.replace(/+/g, "%20");, + означает повторение символа один или несколько раз, но перед ним нет символа, если вы хотите заменить «+» на «% 20», вы можете просто позвонить a.replace("+", "%20") или regex ver a.replace(/\+/g, "%20")

Извините, a.replace("+", "%20") замените только первые "+", поэтому вам нужно a.replace(/\+/g, "%20"), чтобы заменить все "+" на "% 20"

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