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

寵の児 提交于 2019-12-17 22:13:03

问题


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://?


回答1:


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

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



回答2:


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



回答3:


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



回答4:


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




回答5:


Try using replace function

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


来源:https://stackoverflow.com/questions/8206269/how-to-remove-http-from-a-url-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!