Foros del Web » Programando para Internet » Javascript »

Expresion regular por la derecha

Estas en el tema de Expresion regular por la derecha en el foro de Javascript en Foros del Web. Hola tengo esta expresion regular /https?(:|%3a)(\/|%2f)(\/|%2f)/i pero no se como hacer (sin necesidad de un bucle) para que me encuentre la ultima cadena que cumpla ...
  #1 (permalink)  
Antiguo 18/10/2007, 16:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 19 años
Puntos: 0
Pregunta Expresion regular por la derecha

Hola
tengo esta expresion regular
/https?(:|%3a)(\/|%2f)(\/|%2f)/i
pero no se como hacer (sin necesidad de un bucle) para que me encuentre la ultima cadena que cumpla eso
es decir
quiero tener un string que empieza por http y que luego hasta que acabe no vuelva a aparecer ningun http

¿se puede hacer directamente?
__________________
Visita www.GranFuckultad.tk y goza de risa
  #2 (permalink)  
Antiguo 18/10/2007, 17:48
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Expresion regular por la derecha

Hola:

La palabra clave: negative lookahead. Es decir: buscaremos primero http://, luego cualquier caracter que no esté seguido de http. Es tan sencillo como

Código PHP:
var paraProbar = [
    
"http://asdasdasp",
    
"http://asdasdastas",
    
"http://asdjpahttp",
    
"http://asdjpaht",
    
"httpasdjiphttp://asds",
    
"http://asjdpihttp://ashp",
    
"http://httpasdas"
];

var 
re = /^http://(.(?!http))+$/

for(var 
i=0i<paraProbar.lengthi++) {
    
document.writeparaProbar[i]+" ==> "+re.testparaProbar[i] ) +"<br/>");

Cita:
Iniciado por output
http://asdasdasp ==> true
http://asdasdastas ==> true
http://asdjpahttp ==> false
http://asdjpaht ==> true
httpasdjiphttp://asds ==> false
http://asjdpihttp://ashp ==> false
http://httpasdas ==> true
No he conseguido que me de false la última... a ver si lo consigo cuando esté más lúcido. El problema es que no hay ningún caracter entre http:// y http, luego el primer caracter es h, y como esta seguido de ttp pues da true...

De todas maneras si quieres validar direcciones URL ésta no es la forma correcta.



Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 04:54.