2016-10-23 38 views
-1

應該通過:URL正則表達式:所需的協議和可選的WWW

http://google.com 
http://google.com/ 
http://www.google.com 

(與HTTPS相同)

不應傳遞:

http://www.google 
www.google.com 

這一個似乎接近:

^(((http(?:s)?\:\/\/)|www\.)[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,6}(?:\/?|(?:\/[\w\-]+)*)(?:\/?|\/\w+((\.[a-zA-Z]{2,4})?)(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$ 

,但經過:

http://www.go 
www.google.com 
+0

這正則表達式是太可怕了。你使用什麼編程語言?當然,包含這個**精確**功能的函數。 – Jan

回答

0

var reg = /^http(s)?:\/{2}(w{3}\.)?(\w+)\.com(\/)?$/; 
 

 
var domains = ['http://google.com', 'https://www.google.com', 'google.com']; 
 

 
domains.forEach(function (domain) { 
 
    console.log(reg.test(domain)) 
 
});

希望這有助於!

1
(?:https?:\/\/)(?:www.)?.+\.com\/? 

看到工作:http://regexr.com/3egdt

細分:

(?:https?:\/\/) starts with 'http' (or https) ':\\' 
(?:www.)?  domain may start with 'www.' 
.+    domain name (whatever you want) 
\.com   ends with '.com' 
\/?    may contain '\' after 
+0

可以簡化如果使用另一種定界符(如'〜'):https://regex101.com/r/y8A0Ic/1 – Jan