Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/12/2017, 11:49
Avatar de ArturoGallegos
ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: error al validar una url

Realmente no hay mucho que explicar de la expresion que use,

^(http(s)?:\/\/)? -> checa la existencia de http o https, que volviendo a pensar no tiene lógica checar su existencia o no, si cambias a httm:// seguirá marcándote que es valida la url porque lo pasa a formar parte de la siguiente cadena. así que debería ser solo ^(http(s)?:\/\/) a si validamos que siempre exista uno u otro.

.+ -> el punto(.) dice "cualquier carácter" el más (+) "una o mas ocasiones"
\. -> un punto literal

[a-z]{2,6} -> revisa la extensión 2 a 6 caracteres letras

(\.[a-z]{2,6})? -> en caso de existir una segunda extension para los que usan .com.es o similar

.+ -> repito lo anterior cualquier carácter 1 o mas veces

\.[a-z]{2,3} -> esto considerando que sea un archivo lo que quieres revisar, en cuyo caso debería tener una extensión de 2 a 3 caracteres.

La expresión es bastante burda, quizás puedas requerir algo mas preciso, pero de momento esto funciona.

por otro lado te recomiendo este sitio para construir y testear tus expresiones.
https://regex101.com/

si pones tu expresión ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$ veras que te marca error y te dice un comentario del porque, aparte puedes activar un depurador para que veas como esta trabajando paso a paso y en donde comienzan los problemas.