Saltar al contenido

Expresión regular para la validación de URL (en JavaScript)

Solución:

En la respuesta aceptada, Bobince lo hizo bien: validar solo el nombre del esquema,: //, y los espacios y las comillas dobles suele ser suficiente. Así es como se puede implementar la validación en JavaScript:

var url="http://www.google.com";
var valid = /^(ftp|http|https)://[^ "]+$/.test(url);
// true

o

var r = /^(ftp|http|https)://[^ "]+$/;
r.test('http://www.goo le.com');
// false

o

var url="http:www.google.com";
var r = new RegExp(/^(ftp|http|https)://[^ "]+$/);
r.test(url);
// false

Referencias de sintaxis:

  • Objeto MDN RegExp
  • Objeto de expresión regular de W3Schools

La sintaxis de la URL real es bastante complicada y no es fácil de representar en expresiones regulares. La mayoría de las expresiones regulares de apariencia simple darán muchos falsos negativos y falsos positivos. Vea para divertirse estos esfuerzos, pero incluso el resultado final no es bueno.

Además, en estos días, generalmente querrá permitir IRI, así como URI de la vieja escuela, para que podamos vincularnos a direcciones válidas como:

http://en.wikipedia.org/wiki/Þ
http://例え.テスト/

Solo iría por comprobaciones simples: ¿comienza con un método bueno conocido: nombre? ¿Está libre de espacios y comillas dobles? Si es así, demonios, probablemente sea lo suficientemente bueno.

Prueba esta expresión regular

/(ftp|http|https)://(w+:{0,1}w*@)?(S+)(:[0-9]+)?(/|/([w#!:.?+=&%@!-/]))?/

Funciona mejor para mi.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *