正确的正则表达式删除www。 &安培; .com等来自url Javascript

时间:2017-11-01 16:47:08

标签: javascript regex

我似乎找不到转向

的方法
var testString = "www.example.com"; 

"example"

我正在尝试使用正则表达式。我可以用.replace等来做,但我想知道如何使用正确的正则表达式。

3 个答案:

答案 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) );