如果href包含端口号,请执行某些操作

时间:2019-05-02 06:18:11

标签: javascript

我有一个代码,如果端口是xxxx,它会执行某些操作。这是代码:

 function port() {
                if (window.location.port === "9876") {
                    window.location = "http://pc-john.example.com:9877/app/private";
        }
        else {
            window.location = "http://pc-john.example.com:9876/app/private";
        }

    }

运作良好。但是,我坚持使用此URL,此URL现在已被硬编码。

http://pc-john.example.com:9877/app/private

在此url名称中可以更改,所以我需要做一些更容易理解的事情,url像这样:

 http://pc-jack.example.com:9877/app/private 

 http://pc-sara.example.com:9877/app/private 

有人可以帮助我吗?谢谢大家。

2 个答案:

答案 0 :(得分:3)

您可以设置 location.port

if(location.port === "9876") {
  location.port = "9877";
}

anchor.port = "9877";
console.log(anchor.href);
<a href="http://pc-john.example.com:9876/app/private" id="anchor">test</a>

答案 1 :(得分:0)

您可以使用内置方法从href中提取所有部分

url.hostname;  //  'google.com'
url.port;      //  8080
url.pathname;  //  '/app/private'
url.protocol;  //  'http:'

或者您可以显式使用split方法并获取端口号

let stringURL = "http://pc-john.example.com:9877/app/private"
let splittedUrl = stringURL.split(':'); //['http://pc-john.example.com','9877/app/private']
let seondSplit = splittedUrl[1].split('/') //['9877','app','private']
let portnumber = secondSplit[0] // 9877