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,端口号port?
类似window.location.hostname可以先转换成location对象么?
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,端口号port?
类似window.location.hostname可以先转换成location对象么?
提供个思路吧,用正则
var myReg = /.+:(\d{1,5})/;
var myStr = 'http://1.2.3.4:8080';
var myResult = myStr.match(myReg);
console.log(myResult[1]);
解释一下这个正则,就是:.+
: 任意字符出现1~n次,:
: 匹配端口号之前的冒号,(\d{1,5})
: 数字出现1~5次(端口号是1~65535, 1~5位数字),括号表示捕获组
当调用var myResult = myStr.match(myReg);
时,myResult是一个数组,其中myResult[1]表示捕获组1,也就是想要的端口号
如果是直接从url中取,那么document.location.port就可以拿得到。
如果是普通字符串,并且是xxxx:xxxx形式的。可以通过str.split(":"),然后取返回的数组的第二个元素即可。
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读