Заменить двойные слеши в URL

141
03 ноября 2019, 04:50

Допустим имею такой URL:

ptc-serv://regex101.com//path//post?p="z//"

...в конце ?p="z//"

Как на JS заменить двойные слеши(на один /) не затрагивая символы после ? и #, и соответственно первые два после протокола http://.

Пример https://regex101.com/r/vnRU0Z/1

UPD - поправлю вопрос. Надо чтоб осталось:

ptc-serv://regex101.com/path/post?p="z//"
Answer 1

Если в адресе кроме протокола двоеточий перед слешами нет (по крайней мере до # и ?):

console.log( 
  'ptc-serv://regex101.com//path//post?p="z//"'.replace(/(:\/\/|[#?].*)|(\/)\//g, "$1$2") 
)

Answer 2

console.log( 
  'ptc-serv://regex101.com//path//post?p="z//"' 
    .replace(/(:\/\/)([^#?]*)/, (m,l,u) => l + u.replace(/\/\//g, "/")) 
)

READ ALSO
Как не выпускать фокус за пределы модального окна?

Как не выпускать фокус за пределы модального окна?

Пишу на vuejs компонент мадального окна

137
webmoney Отправка запроса с сертификатами в Nodejs

webmoney Отправка запроса с сертификатами в Nodejs

Помогите разобраться с апихой Webmoney

137
Изменить метод в зависимости от cookies

Изменить метод в зависимости от cookies

Необходимо, чтобы метод возвращал { device_id: device_id } если в cookies есть строка device_idПодскажите, пожалуйста, как это лучше реализовать в данном случае?

137