在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ JS如何從字符串中提取端口號(hào)?

JS如何從字符串中提取端口號(hào)?

xxx.com:8080/xxx
www.xxx.com:8080/xxx
http://wwww.xxx.com:8080/xxx
http://xxx.com:8080/xxx
1.2.3.4:8080/xxx
http://1.2.3.4:8080/xxx

類似于上面的格式的字符串,我如何從中取出地址hostname,端口號(hào)port?
類似window.location.hostname可以先轉(zhuǎn)換成location對(duì)象么?

回答
編輯回答
負(fù)我心

如果是直接從url中取,那么document.location.port就可以拿得到。

如果是普通字符串,并且是xxxx:xxxx形式的??梢酝ㄟ^str.split(":"),然后取返回的數(shù)組的第二個(gè)元素即可。

2018年3月4日 15:04
編輯回答
獨(dú)白

提供個(gè)思路吧,用正則

var myReg = /.+:(\d{1,5})/;
var myStr = 'http://1.2.3.4:8080';
var myResult = myStr.match(myReg);

console.log(myResult[1]);

解釋一下這個(gè)正則,就是:
.+: 任意字符出現(xiàn)1~n次,
:: 匹配端口號(hào)之前的冒號(hào),
(\d{1,5}): 數(shù)字出現(xiàn)1~5次(端口號(hào)是1~65535, 1~5位數(shù)字),括號(hào)表示捕獲組

當(dāng)調(diào)用var myResult = myStr.match(myReg);時(shí),myResult是一個(gè)數(shù)組,其中myResult[1]表示捕獲組1,也就是想要的端口號(hào)

2018年6月14日 20:23
編輯回答
孤酒
function getUrlPort(url){
    var protocolReg = /^\w+:\/\//;
    if(!protocolReg.test(url)){
        url = "http://"+url
    }
    return new URL(url).port
};
2018年2月17日 13:08
編輯回答
話寡
p = str.split(':')
port = parseInt(p[p.length-1],10)
2017年3月28日 22:08