我似乎找不到转向
的方法var testString = "www.example.com";
到
"example"
我正在尝试使用正则表达式。我可以用.replace
等来做,但我想知道如何使用正确的正则表达式。
答案 0 :(得分:1)
你可以通过正则表达式修剪www
(因为它可能是可选的)并通过将url拆分成几块并将它们连接起来丢弃主机名的最后一部分:
var testString = 'www.example.com';
result = testString.replace(/^www\./,'').split('.').slice(0,-1).join('.');
答案 1 :(得分:0)
使用match:
testString = "www.example.com";
result=testString.match(/^www\.(.*)\.com$/)[1];
正则表达式:
^
==>从...开始
www\.
==> litteral www.
(点必须逃脱)
(.*)
==>使用括号来捕获一个组,.
匹配任何内容,*
0或N次
\.com
==> litteral .com
(点必须逃脱)
$
==>
答案 2 :(得分:0)
function getHostName(url) {
var match = url.match(/:\/\/(www[0-9]?\.)?(.[^/:]+)/i);
if (match != null && match.length > 2 && typeof match[2] === 'string' && match[2].length > 0) {
var hostname = match[2].split(".");
return hostname[0];
}
else {
return null;
}
}
var url1 = "http://www.example.co.uk/foo/bar?hat=bowler&accessory=cane";
var url2 = "https://stackoverflow.com/questions/47059759/";
var url3 = "http://www.example.com/?q=keyword";
console.log( getHostName(url1) );
console.log( getHostName(url2) );
console.log( getHostName(url3) );