La programación ha facilitado el manejo de datos textuales estructurados y no estructurados. Herramientas como expresiones regulares y bibliotecas externas facilitan mucho estas tareas.
Puede usar la mayoría de los lenguajes, incluidos Python y JavaScript, para validar las URL mediante una expresión regular. Esta expresión regular de ejemplo no es perfecta, pero puede usarla para verificar las URL en casos de uso simples.
Una expresión regular para validar una URL
La expresión regular para validar una URL presentada en este artículo no es perfecta. Puede haber múltiples ejemplos de URL válidas que pueden fallar en esta validación de expresiones regulares. Esto incluye URL que involucran direcciones IP, caracteres que no son ASCII y protocolos como FTP. La siguiente expresión regular solo valida las URL más comunes.
La expresión regular considerará una URL válida si cumple las siguientes condiciones:
- La cadena debe comenzar con cualquiera http o https seguido por ://.
- La longitud combinada del subdominio y el dominio debe estar entre 2 y 256. Solo debe contener caracteres alfanuméricos y/o caracteres especiales.
- El TLD (dominio de nivel superior) solo debe contener caracteres alfabéticos y debe tener entre dos y seis caracteres.
- El final de la cadena de URL podría contener caracteres alfanuméricos y/o caracteres especiales. Y podría repetirse cero o más veces.
Puede validar una URL en JavaScript usando la siguiente expresión regular:
^(http(s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
De manera similar, puede usar la siguiente expresión regular para validar una URL en Python:
^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$
Dónde:
- (http|https)://) se asegura de que la cadena comience con http o https seguido de ://.
- [-a-zA-Z0-9@:%._\\+~#?&//=] indica caracteres alfanuméricos y/o caracteres especiales. La primera instancia de este conjunto representa el conjunto de caracteres que se permiten en el subdominio y la parte del dominio. Mientras que la segunda instancia de este conjunto representa el conjunto de caracteres que se permiten en la cadena de consulta o parte del subdirectorio.
- {2,256} representa de 2 a 256 (ambos inclusive) veces el indicador de ocurrencia. Esto indica que la longitud combinada del subdominio y el dominio debe estar entre dos y 256.
- \. representa el carácter de punto.
- [a-z]{2,6} significa cualquier letra minúscula de la a a la z con una longitud entre dos y seis. Esto representa el conjunto de caracteres que se permitirán en la parte del dominio de nivel superior.
- \b representa el límite de una palabra, es decir, el comienzo de una palabra o el final de una.
- * es un operador de repetición que indica cero o más copias de la cadena de consulta, parámetros o subdirectorios.
- ^ y $ indicar el inicio y el final de la cadena respectivamente.
Si no se siente cómodo con la expresión anterior, consulte una guía para principiantes de expresiones regulares primero. Las expresiones regulares tardan un tiempo en acostumbrarse. Explorando algunos ejemplos como validar los detalles de la cuenta de usuario usando expresiones regulares debería ayudar.
La expresión regular anterior satisface los siguientes tipos de URL:
- https://www.something.com/
- http://www.something.com/
- https://www.something.edu.co.in
- http://www.url-with-path.com/path
- https://www.url-with-querystring.com/?url=has-querystring
- http://url-without-www-subdomain.com/
- https://mail.google.com
Usar la expresión regular en un programa
El código utilizado en este proyecto está disponible en un repositorio GitHub y es gratis para su uso bajo la licencia MIT.
Este es un enfoque de Python para validar una URL:
importar re
definitivamentevalidarURL(dirección URL):
expresión regular = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = recompilar (regex)si (re.buscar(r, URL)):
imprimir("Válido")
demás:
imprimir("No es válido")
URL1 = "https://www.linkedin.com/"
validarURL(url1)
URL2 = "http://apple"
validarURL(url2)
URL3 = "iywegfuykegf"
validarURL(url3)
URL4 = "https://w"
validarURL(url4)
Este código usa Python re.compilar() método para compilar el patrón de expresión regular. Este método acepta el patrón de expresión regular como un parámetro de cadena y devuelve un objeto de patrón de expresión regular. Este objeto de patrón de expresión regular se usa además para buscar ocurrencias del patrón de expresión regular dentro de la cadena de destino usando el investigación() método.
Si encuentra al menos una coincidencia, el investigación() método devuelve la primera coincidencia. Tenga en cuenta que si desea buscar todas las coincidencias con el patrón de la cadena de destino, debe utilizar el re.findall() método.
Ejecutar el código anterior confirmará que la primera URL es válida pero el resto no lo son.
Del mismo modo, puede validar una URL en JavaScript utilizando el siguiente código:
funciónvalidarURL(URL) {
si(/^(http(s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.prueba (URL)) {
consola.log('Válido');
} demás {
consola.log('No es válido');
}
}
validarURL("https://www.linkedin.com/");
validarURL("http://apple");
validarURL("iywegfuykegf");
validarURL("https://w");
Nuevamente, ejecutar este código confirmará que la primera URL es válida y que el resto de ellas no son válidas. Utiliza JavaScript fósforo() método para hacer coincidir la cadena de destino con un patrón de expresión regular.
Validar datos importantes usando expresiones regulares
Puede usar expresiones regulares para buscar, hacer coincidir o analizar texto. También se utilizan para el procesamiento del lenguaje natural, la coincidencia de patrones y el análisis léxico.
Puede usar esta poderosa herramienta para validar tipos importantes de datos como números de tarjetas de crédito, detalles de cuentas de usuarios, direcciones IP y más.