Un nuevo método para validar URL en JavaScript

JavaScript

¡Hay novedades en el frente de validación de URL en JavaScript! Después de todos estos años de maldecir a JavaScript por no tener una manera fácil de validar una URL, hay un nuevo método en la ciudad: ¡ URL.canParse()      

URL.canParse('https://www.tincode.es'); // true 
URL.canParse('www.tincode.es'); // false

¡Aleluya! Es una forma rápida de averiguar si una cadena es una URL válida. Pero antes de que nos emocionemos demasiado, al escribir esta publicación no se admite el uso de varios navegadores. Pero puede encontrar información actualizada de soporte del navegador a continuación. URL.canParse() URL.canParse()

 

Sin embargo, el método estático ya está incluido core-js. ¿Es difícil rellenar el ingenioso resumen de validación de URL? ¡Resulta que no!

URL.canParse() se basa en el mismo algoritmo para evaluar una URL válida que el URL() constructor.

Si tiene curiosidad y desea mejorar su juego de lectura de especificaciones, implemente el algoritmo de análisis de URL básico que se define en la especificación WHATWG .URL.canParseURL()

Y debido a que ambos métodos implementan el mismo analizador y URL() cuentan con buen soporte hoy en día, puedes seguir el consejo general para usar el constructor para validar las URL. Colóquelo new URL() en una función auxiliar, verifique si es throws una excepción y ¡llámelo por día!

function isUrlValid(string) {
  try {
    new URL(string);
    return true;
  } catch (err) {
    return false;
  }
}

isUrlValid('https://www.tincode.es'); // true
isUrlValid('www.tincode.es'); // false

O si no te apetece una isUrlValid función, también puedes realizar un polyfill similar a URL.canParse() core-js.

Lo único que queda es la pregunta "¿Qué es una URL válida?" ¡Pero esto lo dejaré para otro momento! Porque es difícil.

 

CURSO DE JAVASCRIPT COMPLETO