Как удалить ' http://' из URL в JavaScript [дубликат]
На этот вопрос уже есть ответ здесь:
- удаление http или https из строки javascript 11 ответов
Я столкнулся странная ситуация. Я пишу букмарклет JavaScript, который позволит пользователям очень легко и быстро кликать и делиться внешними сайтами с нашим сайтом. Это просто получить заголовок, URL страницы, и если они имеют выделив любой текст на странице, он захватывает его тоже.
Проблема в том, что он по какой-то причине не работает с внешними доменами, поэтому, если мы используем его внутри, мы получаем окно общего доступа с URL-адресом, отформатированным следующим образом:
Http://internaldomain.com/sharetool.php?shareid=http://internaldomain.com/anotheroddpage.html&title=....
Это работает просто отлично, но если мы попытаемся использовать внешний домен и в конечном итоге получим URL, отформатированный как это:
Затем мы получаем запрещенную ошибку на нашей странице и не можем ее загрузить... Если мы вручную удалим 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 ответов:
Я думаю, что было бы лучше принять во внимание все возможные протоколы.
result = url.replace(/(^\w+:|^)\/\//, '');
Я думаю, что вам нужно регулярное выражение
/(?:http://)(.*)/i
. Первый матч этого должен быть именно он.
Попробуйте использовать заменить функцию
var url = url.replace("http%3A%2F%2F", "");