"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo utilizar expresiones regulares para detectar URL, incluidas las URL desnudas?

¿Cómo puedo utilizar expresiones regulares para detectar URL, incluidas las URL desnudas?

Publicado el 2024-12-20
Navegar:209

How Can I Use Regular Expressions to Detect URLs, Including Naked URLs?

Detección de URL con expresiones regulares

Su código actual no coincide con las URL desnudas, que carecen del prefijo "http://". Para solucionar este problema, considere adoptar una expresión regular completa:

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)

Esta expresión mejorada incluye las siguientes características:

  • Asegura que las URL comiencen con "http://", " https://", o nada.
  • Permite subdominios al incluir "(www.)" como prefijo opcional.
  • Admite nombres de dominio de hasta 256 caracteres de longitud y dominios de nivel superior de hasta 6 caracteres.

Para aquellos que no requieren el protocolo HTTP en sus coincidencias, hay disponible una expresión alternativa:

[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)

Para demostrar la funcionalidad de estas expresiones, consulte las herramientas de prueba en línea en http://regexr.com?37i6s (para la primera expresión) o http ://regexr.com/3e6m0 (para la expresión menos restrictiva).

Aquí hay un ejemplo de implementación de JavaScript que utiliza la expresión regular más completa:

const expression = /[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)/gi;
const regex = new RegExp(expression);
const t = 'www.google.com';

if (t.match(regex)) {
  alert("Successful match");
} else {
  alert("No match");
}
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3