JavaScript中的主机名url正则表达式
我知道有很多用于URL等的正则表达式,但我真的很困惑为什么这一个不起作用。我试图确保用户的条目是一个正确的网站,允许www或不允许wwwJavaScript中的主机名url正则表达式,javascript,regex,Javascript,Regex,我知道有很多用于URL等的正则表达式,但我真的很困惑为什么这一个不起作用。我试图确保用户的条目是一个正确的网站,允许www或不允许www var pattern = /http(s?):\/\/ (http:// or https://) (?:[a-zA-Z]+\.){0,1} (0 or 1 instance of www) (?:[a-zA-Z0-9][a-zA-Z0-9-]+){1} (1 instance
var pattern =
/http(s?):\/\/ (http:// or https://)
(?:[a-zA-Z]+\.){0,1} (0 or 1 instance of www)
(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1} (1 instance of a domain name)
(?:\.[a-zA-Z]{2,6})+/; (1 or more instance of .com or .co.uk)
它使用pattern.test()适用于以下测试用例
- ->对
- ->对
- ->对
- htts://stackoverflow.com ->假的
- http:/stackoverflow.com->false
- ->正确(错误)
- .->对(错)
- ->正确(错误)
var pattern =
/^http(s?):\/\/ (http:// or https://)
(?:[a-zA-Z]+\.){0,1} (0 or 1 instance of www)
(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1} (1 instance of a domain name)
(?:\.[a-zA-Z]{2,6})+$/; (1 or more instance of .com or .co.uk)
var模式=
/^http(s?):\/\/(http://或https://)
(?:[a-zA-Z]+\){0,1}(www的0或1个实例)
(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(域名的一个实例)
(?:\[a-zA-Z]{2,6})+$/;(1个或多个.com或.co.uk实例)
对于www.stackoverflow
,第一组不匹配(因为您说它是可选的),然后第二组匹配www
,第三组匹配。stacko
小贴士:
不是必需的{1}
等同于{0,1}
?
- 由于您没有使用任何捕获,
可能只是(s?
s?
var pattern =
/^http(s?):\/\/ (http:// or https://)
(?:[a-zA-Z]+\.){0,1} (0 or 1 instance of www)
(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1} (1 instance of a domain name)
(?:\.[a-zA-Z]{2,6})+$/; (1 or more instance of .com or .co.uk)
var模式=
/^http(s?):\/\/(http://或https://)
(?:[a-zA-Z]+\){0,1}(www的0或1个实例)
(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(域名的一个实例)
(?:\[a-zA-Z]{2,6})+$/;(1个或多个.com或.co.uk实例)
对于www.stackoverflow
,第一组不匹配(因为您说它是可选的),然后第二组匹配www
,第三组匹配。stacko
小贴士:
不是必需的{1}
等同于{0,1}
?
- 由于您没有使用任何捕获,
可能只是(s?
s?