直接上正则:
^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$
这个正则表达式可以匹配以下形式的域名:
1、子域名(例如 sub.example.com)
2、根域名(例如 example.com)
解析:
1、^(?: ... )+$:整个正则表达式的开始和结束,确保匹配整个字符串。
2、[a-zA-Z0-9]:域名的字符必须以字母或数字开头。
3、(?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?:后续字符可以是字母、数字或短横线,短横线不能出现在开始或结束的位置,且最大长度为63个字符(这是域名的一部分长度限制)。
4、\.:点(.)用来分隔不同的域名部分。
5、[a-zA-Z]{2,}:顶级域名部分,必须至少由两个字母组成(例如 .com、.org、.net)
需要注意:
1、域名的最大长度是253个字符,这个没做判断
2、域名首位和末尾不能是连接线,也就是“-”,也没做判断,实在有点烧脑,做不来了><
微信扫码查看本文
发表评论