andrebaltieri / Flunt

Validations and Notifications
https://github.com/andrebaltieri/flunt
MIT License
626 stars 162 forks source link

Regex pattern de URL não reconhece URLs locais #88

Closed felipedsc closed 2 years ago

felipedsc commented 3 years ago

Tenho um cenário onde estou armazenando URLs que apontam para o meu storage no meu banco. Porém, quando trabalhando localmente, as URLs não são aceitas pelo regex do método IsUrl, conforme pode ser verificado em:

https://regex101.com/r/ugUqs5/1

Caso o comportamento seja intencional, qual poderia ser a melhor maneira para lidar com esse "efeito colateral"? -> Talvez algo como checar o environment ou modo de depuração e aplicar uma validação ou outra?

andrebaltieri commented 3 years ago

Obrigado por reportar... na verdade quando criei esta validação, não pensei em lidar com localhost ou IPs, mas de fato faz sentido melhorar isto.

Só precisamos ver qual seria a melhor expressão regular para permitir isto, sem quebrar os projetos que já usam o pacote hoje.

Enquanto isto não acontece, você pode usar o método Matches e colocar sua expressão regular customizada para URL, como por exemplo: (?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w-]+)+)(:\d+)?(\/\S*)?)

Esta seria a melhor saída no momento.

jhonattan111 commented 3 years ago

^(http|https):(\/\/www\.|\/\/www\.|\/\/|\/\/)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$|(http|https):(\/\/localhost:\d*|\/\/127\.[0-255]\.[0-255]\.[0-255])(:[0-9]{1,5})?(\/.*)?$

andrebaltieri commented 3 years ago

Já vi seu PR @jhonattan111 em breve vou colocar no ar, muito obrigado <3

andrebaltieri commented 2 years ago

Corrigido no PR 95 https://github.com/andrebaltieri/Flunt/pull/95