Foros del Web » Programando para Internet » Javascript »

Expresión regular que detecta url

Estas en el tema de Expresión regular que detecta url en el foro de Javascript en Foros del Web. Hola amigos. Estoy que no doy con las expresiones regulares. Funcionan todas menos la siesweb . Primero os dejo el código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript ...
  #1 (permalink)  
Antiguo 07/02/2010, 20:03
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Expresión regular que detecta url

Hola amigos. Estoy que no doy con las expresiones regulares. Funcionan todas menos la siesweb. Primero os dejo el código:
Código Javascript:
Ver original
  1. var siesweb=/^http/i.exec(cadena);
  2.     var siesemail=/@/g.exec(cadena);
  3.     var sieswebwww=/^www./i.exec(cadena);

El primero no funciona. Los otros sí. El primero lo he probado de mil maneras, en las que se encuentra:

Código Javascript:
Ver original
  1. var siesweb=/^http\:\/\//i.exec(cadena);
  2.     var siesweb=/^http\:/i.exec(cadena);
  3.     var siesweb=/www/g.exec(cadena); //A ver si daba de una vez y tampoco encuentra www de modo global
Y un largo etcétera. Podéis ayudarme a detectar una cadena que comience por http:// ???


gracias y saludos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #2 (permalink)  
Antiguo 07/02/2010, 20:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresión regular que detecta url

quizas te interese este tema, http://www.forosdelweb.com/f13/valid...ulario-737257/
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 07/02/2010, 20:22
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresión regular que detecta url

Uf gracias, pero creo que no es lo que necesito. Únicamente necesito que se detecte un http:// al principio de una cadena, sin importar el resto. ¿Esto sería posible? Con lo fácil que fue detectar www. cómo puede ser tan díficil el http://??
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 07/02/2010, 20:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresión regular que detecta url

o sea, ¿un ejemplo de la cadena seria algo como lo siguiente?
Código:
"http://www.forosdelweb.com/f13/expresion-regular-que-detecta-url-776367/ es un tema creado por CHuLoSoY y trata sobre expresiones"
tu quieres que solamente se detecte si contiene una url al principio de la cadena. igual puedes usar la expresion regular del tema que te indique. especialmente en el post #4 tienes dos ejemplos de los cuales estoy seguro que funcionan. lo unico que tienes que editar es si debe estar anclado al principio y/o final de la cadena.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 07/02/2010, 20:28
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Expresión regular que detecta url

Por que no nos explicas que error tienes, que le pasas como valor de cadena y como haces la llamada para que se ejecute el code? Por cierto, espero que estés solo aprendiendo, practicando o que vallas a mejorar esas regexps por que de otra manera estás dejando demasiados agujeros.
__________________
twitter: @imbuzu
  #6 (permalink)  
Antiguo 07/02/2010, 20:32
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresión regular que detecta url

@zerokilled: gracias, pruebo y te cuento.
@buzu: no hombre! Nada más lejos. Hice un editor para un blog con un montón de opciones( formato de fuente, videos de youtube, incluso tablas), todo ello en javascript. Pero a la hora de los hipervínculos sólo me funciona si es email o si empieza por www. pero no si empieza por http://. La cadena es un texto seleccionado, y si no cumple ninguno de los tres requisitos, pasa a ser únicamente el texto del hipervínculo, teniendo que poner en otro campo el enlace. En cambio si el texto seleccionado cumple alguno de los tres, se cubre todo automáticamente. Igual no me explico bien, pero si pongo el código es un poco caos.

Saludos y gracias.

PD: Sí, en expresiones regulares NI PUTA IDEA XD
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #7 (permalink)  
Antiguo 07/02/2010, 20:35
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Expresión regular que detecta url

ah, ya te entiendo. Prueba con lo que te dice zerokilled (hola) Estoy seguro que te debe funcionar.
__________________
twitter: @imbuzu
  #8 (permalink)  
Antiguo 08/02/2010, 07:35
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresión regular que detecta url

Hola amigos. He puesto esto:

Código Javascript:
Ver original
  1. var siesweb=/^((?:[A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/i.exec(cadena);
Y tampoco funciona. He probado el otro también:
Código Javascript:
Ver original
  1. var siesweb=/(\w+:)?(?:\/+)?([^\/]*)([^?#]*)(\?[^#]+)?(#\w+)?/i.exec(cadena);
  2.  
  3. var siesweb=/^(\w+:)?(?:\/+)?([^\/]*)([^?#]*)(\?[^#]+)?(#\w+)?/i.exec(cadena);

Y no funciona nada. No me lo explico. Hay alguna manera de hacer una expresión regular, sea sencillita o compleja, que únicamente detecte que esa cadena empieza por http:// , al igual de sencillo que fue detectar que comience por www. ?

Saludos y gracias.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #9 (permalink)  
Antiguo 09/02/2010, 06:58
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresión regular que detecta url

Ya lo he conseguido, mil gracias.
Era todo muy raro, el error no estaba en la expresión regular. Valía cualquiera de las que puse. El problema es que tenía unos ifs que detectaban todo, y había dos if seguidos en lugar de que el segundo fuese else if. Al final me quedé con esto.

Código PHP:
Ver original
  1. var siesweb=/^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$/i.exec(cadena);
Que también detecta ftp.

saludos amigos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: expresiones, regulares
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:18.