Как удалить ' http://' из URL в JavaScript [дубликат]


На этот вопрос уже есть ответ здесь:

Я столкнулся странная ситуация. Я пишу букмарклет JavaScript, который позволит пользователям очень легко и быстро кликать и делиться внешними сайтами с нашим сайтом. Это просто получить заголовок, URL страницы, и если они имеют выделив любой текст на странице, он захватывает его тоже.

Проблема в том, что он по какой-то причине не работает с внешними доменами, поэтому, если мы используем его внутри, мы получаем окно общего доступа с URL-адресом, отформатированным следующим образом:

Http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title=....

Это работает просто отлично, но если мы попытаемся использовать внешний домен и в конечном итоге получим URL, отформатированный как это:

Http://internaldomain.com/sharetool.php?shareid=http://externaldomain.com/coolpagetoshare.html&title=...

Затем мы получаем запрещенную ошибку на нашей странице и не можем ее загрузить... Если мы вручную удалим http:// из адреса externaldomain, он снова загрузится нормально.

Итак.. Я думаю, что лучшее решение, чтобы обойти эту проблему, - это изменить букмарклет JavaScript, чтобы удалить http , когда он загружает окно. Вот как мой нынешний букмарклет выглядит так:

javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://internaldomain.com/sharetool.php',l=d.location,e=encodeURIComponent,u=f+'?u='+e(l.href)+

Как вы можете видеть, e(l.href) - это место, где передается URL.

Как я могу изменить это, чтобы удалить внешние Домены http://?

5 38

5 ответов:

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

result = url.replace(/(^\w+:|^)\/\//, '');
url = url.replace(/^https?:\/\//,'')
l.href.replace(/^http:\/\//, '')

Я думаю, что вам нужно регулярное выражение /(?:http://)(.*)/i. Первый матч этого должен быть именно он.

Попробуйте использовать заменить функцию

var url = url.replace("http%3A%2F%2F", "");