How to remove 'http://' from a URL in JavaScript

JavascriptRegexBookmarklet

Javascript Problem Overview


I have run into an odd situation. I'm writing a JavaScript bookmarklet that will allow users to click and share external websites to our website very easily and quickly. It simply get's the title, page URL, and if they've selected any text on the page, it grabs it too.

The problem is it doesn't work with external domains for some reason, so if we use it internally we end up with a share window with the URL formatted like this:

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

That works just fine, BUT if we try to use an external domain and end up with a URL formatted like this:

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

Then we get a Forbidden Error on our page and can't load it... If we manually remove the http:// from the externaldomain address, it loads just fine again.

So.. I'm thinking the best solution to get around this problem is to modify the JavaScript bookmarklet to remove the http as it's loading the window. Here is how my current bookmarklet looks:

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)+

As you can see, e(l.href) is where the URL is passed.

How can I modify that so it removes the external domains http://?

Javascript Solutions


Solution 1 - Javascript

I think it would be better to take into account all possible protocols.

result = url.replace(/(^\w+:|^)\/\//, '');

Solution 2 - Javascript

url = url.replace(/^https?:\/\//, '')

Solution 3 - Javascript

l.href.replace(/^http:\/\//, '')

Solution 4 - Javascript

I think the regular expression you need is /(?:http://)(.*)/i. The first match of this should be it.

Solution 5 - Javascript

Try using replace function

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPeterView Question on Stackoverflow
Solution 1 - JavascriptFailedDevView Answer on Stackoverflow
Solution 2 - JavascriptmatskoView Answer on Stackoverflow
Solution 3 - JavascriptshyamView Answer on Stackoverflow
Solution 4 - JavascriptidanzalzView Answer on Stackoverflow
Solution 5 - JavascriptMindaugas KarlaView Answer on Stackoverflow