所以我有以下Regex URL验证器:
[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+
它非常适合我的需求,除了它接受没有域名的网址,例如www.test
。
如何修改它以验证域名? (任何域名都不应该被接受.com
答案 0 :(得分:2)
只需将正则表达式中的最后一个组强制显示为两次或多次:
[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,}){2,}
作为免责声明,并且@Wiktor可能会发表评论,您可能希望使用正则表达式模式来验证已经过彻底测试的URL。虽然这个答案可能会解决您的直接问题,但很可能存在其他边缘情况。
答案 1 :(得分:0)
你可以这样做来考虑unicode:
^\p{L}+\.\p{L}+(\.\p{L}{2,})+
\p{L}
或\p{Letter}
:来自任何语言的任何类型的信件。
因此,我们匹配一组一个或多个字母(sudomain)后跟一个。然后是一组一个或多个字母(主域),后跟任意数量的组。两个或多个字母(域名后缀)。