如何使用javascript删除http或https

时间:2017-04-18 21:03:07

标签: javascript

我有以下代码:

<script>
document.write('<img src=//testURL.comaction?item=' + window.location.href + '>');
</script>

如果当前window.location(url)包含http或https,我想将其删除。

更新: 这两次投票有没有理由?我的问题很清楚

3 个答案:

答案 0 :(得分:3)

仅删除http / httpswindow.location.href.replace(/^http(s?)/i, "");

要删除http: / https:window.location.href.replace(/^http(s?):/i, "");

要删除http:// / https://window.location.href.replace(/^http(s?):\/\//i, "");

这些都是不区分大小写的,只能从字符串的开头删除

答案 1 :(得分:2)

简单的正则表达式可以解决问题。

const removeHttps = input => input.replace(/^https?:\/\//, '');

const inputs = ['https://www.stackoverflow.com', 'http://www.stackoverflow.com'];

inputs.forEach(input => console.log('Input %s, Output %s', input, removeHttps(input)));

但是,更简洁的方法可能只是组合${document.location.host}${document.location.pathname}${document.location.search}。它更长,但你不必做任何正则表达式。

  • host类似于stackoverflow.com
  • pathname类似于/questions
  • search类似于?param=value

他们一起给出了没有协议的整个网址(顺便说一句是document.location.protocol。)

答案 2 :(得分:1)

如果您只想替换httphttps,则应使用window.location.href.replace(/http(s?)/, '');作为Kieran E建议。如果您想要始终删除协议,可以使用window.location.href.replace(window.location.protocol, '');