2017-05-06 79 views
0

我有这个URL验证正则表达式,它工作正常,但它不通过,如果URL包含hyphenwww.i-card.com,这是一个有效的域,它应该通过它。这里是我的正则表达式:包含连字符的URL验证正则表达式

^((https?|ftp|smtp):\/\/)?(www.)?[a-z0-9]+(\.[a-z]{2,}){1,3}(#?\/?[a-zA-Z0-9#]+)*\/?(\?[a-zA-Z0-9-_]+=[a-zA-Z0-9-%]+&?)?$

+0

添加'-'第一字符类:'[A-Z0-9 - ] +' – revo

+0

这正则表达式是略疯。它匹配很多不是URL的东西,也不匹配很多东西。 – melpomene

+0

@melpomene你能给我举个例子吗? –

回答

0

试试这个版本:

^((https?|ftp|smtp):\/\/)?(www.)?[a-z0-9\-]+(\.[a-z\-]{2,}){1,3}(#?\/?[a-zA-Z0-9\-#]+)*\/?(\?[a-zA-Z0-9-_\-]+=[a-zA-Z0-9-%\-]+&?)?$