Как создать замену регулярного выражения, чтобы ловить недопустимые символы URL - PullRequest
0 голосов
/ 03 октября 2019

Я использую метод replace для генерации регулярного выражения для исправления URL-адресов с пробелами, например,

https://s3.eu-west-2.amazonaws.com/ererf3wery/sweet tooth packages-5cec39de28ea9000459a69a7/providerImage/2019-05-28 18.45.29.png

Мой метод replace выглядит следующим образом

String(provider.coverImage).replace(/\ /g, "%20")

но это регулярное выражение не работает для этого URL

https://s3.eu-west-2.amazonaws.com/ererf3wery/Papa/'s%20Diner%20Fish%20City-5d836f717de0dd078f1338ad/providerImage/pdfc.jpg

Мне нужна помощь в том, как отловить недопустимый символ в URL

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Вы можете использовать decodeURI.

decodeURI(https://s3.eu-west-2.amazonaws.com/ererf3wery/sweet tooth packages-5cec39de28ea9000459a69a7/providerImage/2019-05-28 18.45.29.png)

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/decodeURI

0 голосов
/ 03 октября 2019

Вам действительно не нужен обратный слеш внутри вашего регулярного выражения.

'String with spaces'.replace(/ /g, '$20');

Кроме того, было бы неплохо заменить все пробелы на % 20 . К счастью, для этого есть специальная группа символов в регулярных выражениях - \ s .

'String with spaces and tabs'.replace(/\s/g, '%20');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...