parameter - unescape javascript
¿Cómo detectar si una cadena está en formato URL usando javascript? (7)
Creo que el título de la pregunta parece explicar todo. Quiero detectar si una cadena está en formato URL o no usando javascript.
Cualquier ayuda apreciada.
Prueba este código. Esta expresión es más completa y tiene en cuenta la dirección IP:
function checkUrl(s) {
var regexp = /^(?:http(s)?:////)?[/w.-]+(?:/.[/w/.-]+)+[/w/-/._~:/?#[/]@!/$&''/(/)/*/+,;=.]+$/
return regexp.test(s); }
Prueba esto-
function isUrl(s) {
var regexp = /(ftp|http|https):////(/w+:{0,1}/w*@)?(/S+)(:[0-9]+)?(//|//([/w#!:.?+=&%@!/-//]))?/
return regexp.test(s);
}
uso: if (isUrl (" http://www.page.com ")) alert ("es correcto") else alert ("no correcto");
Puedes usar una expresión regular para verificar la cadena
^s?https?:////[-_.!~*''()a-zA-Z0-9;//?:/@&=+/$,%#]+$
Tenía la misma tarea, pero todas las expresiones regulares que encontré en línea para verificar la validez de una URL fallaron en algunos casos de prueba.
Aquí está la expresión regular que funcionó todo:
/^(http:////www/.|https:////www/.|www/.)?[a-z0-9]+([/-/.]{1}[a-z0-9]+)*/.[a-z]{2,5}(:[0-9]{1,5})?(//.*)?/
Sin embargo, si la URL era como: google.com , la aceptó como válida (lo que en mi caso específico se consideró no válido )
Funcionó lo mejor que había encontrado. ¡Trabajado como un encanto!
Una para el futuro utilizando el constructor de URL y una declaración básica de captura de prueba, es compatible con la mayoría de los navegadores modernos. Obviamente no hay soporte de IE ...
const isUrl = (str) => {
try {
new URL(str);
return true;
} catch () {
return false;
}
}
Si la URL es válida, el constructor la analizará y devolverá verdadero.
Si la cadena no es una URL válida, el constructor lanzará un error de sintaxis que se detectará y devolverá falso.
prueba algo como esto:
function isUrl(s) {
var regexp = /(ftp|http|https):////(/w+:{0,1}/w*@)?(/S+)(:[0-9]+)? (//|//([/w#!:.?+=&%@!/-//]))?/
return regexp.test(s);
}
function IsURL(url) {
var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
+ "?(([0-9a-z_!~*''().&=+$%-]+: )?[0-9a-z_!~*''().&=+$%-]+@)?" //ftp的user@
+ "(([0-9]{1,3}/.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
+ "|" // 允许IP和DOMAIN(域名)
+ "([0-9a-z_!~*''()-]+/.)*" // 域名- www.
+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]/." // 二级域名
+ "[a-z]{2,6})" // first level domain- .com or .museum
+ "(:[0-9]{1,4})?" // 端口- :80
+ "((/?)|" // a slash isn''t required if there is no file name
+ "(/[0-9a-z_!~*''().;?:@&=+$,%#-]+)+/?)$";
var re=new RegExp(strRegex);
return re.test(url);
}
Debuggex Demo (versión mejorada que también coincide con ''localhost'')