Foros del Web » Programando para Internet » Javascript »

Expresion Regular

Estas en el tema de Expresion Regular en el foro de Javascript en Foros del Web. Amigos necesito validar un String que contiene un enlace de Megaupload atraves de Javascript. he estado trabajando con una expresion regular chanta que hice xD ...
  #1 (permalink)  
Antiguo 05/03/2008, 17:30
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Expresion Regular

Amigos necesito validar un String que contiene un enlace de Megaupload atraves de Javascript.

he estado trabajando con una expresion regular chanta que hice xD

Código:
function urlmegaupload(e)
{
	var patron = new RegExp("^[http://www.megaupload.com/?d=]+[0-9a-zA-Z]Ya l");
	// Comparamos con Patron
	if ( e.search(patron) != -1 )
	{
		alert( e );
		document.formdown.submit();
	}
	else
	{
		alert ( '"'+ e + '" no concuerda con un enlace MegaUpload \n Ejemplo : http://www.megaupload.com/?d=9MY7CM9X' );
		document.formdown.url.value = "";
		
	}
}
Bueno quiero mejorar la expresion regular debido a que si pongo http://www.google.cl igual entra xD , cualquier cadena q comienze con h la reconoce como valida.

Y solo quiero validar string que sean de un enlace MegaUpload.

Saludos
  #2 (permalink)  
Antiguo 07/03/2008, 08:26
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

Hola DeeR:

La verdad es que no entiendo el uso de los corchetes aquí, ni su cuantificador +:
Código:
new RegExp("^[http://www.megaupload.com/?d=]+[0-9a-zA-Z]Ya l");
Ya que lo que quieres es que esa ristra de letras esté de forma literal en tu cadena, no cualquier caracter de esa colección.

Más o menos me imagino que lo que quieres conseguir es ésto:
Código:
new RegExp("^http:\/\/www\.megaupload\.com\/\?d=[0-9a-z]Ya l", "i");
¿Estás seguro que la expresión regular ha de terminar en "Ya l"?

Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 08/03/2008, 18:17
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Expresion Regular

jaja si lo del "Ya 1" es un error del buffer del Copy Paste xD ... , eso no va ... no me funciona , mira.

Código:
<html>
<script language="JavaScript"> 
function urlmegaupload(e)
{
	var patron = new RegExp("^http:\/\/www\.megaupload\.com\/\?d=[0-9a-z]");
	// Comparamos con Patron
	if ( e.search(patron) != -1 )
	{
		alert( "Enlace Correcto" );
		//document.formdown.submit();
	}
	else
	{
		alert ( '"'+ e + '" no concuerda con un enlace MegaUpload \n Ejemplo : http://www.megaupload.com/?d=9MY7CM9X' );
		document.formdown.url.value = "";
		
	}
}
// llamamos a la funcion
urlmegaupload("http://www.megaupload.com/?d=9MY7CM9X");

</script>
</html>
  #4 (permalink)  
Antiguo 09/03/2008, 10:56
 
Fecha de Ingreso: diciembre-2007
Ubicación: Argentina
Mensajes: 151
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Expresion Regular

Prueba esto:


Código:
<html>

<script language="JavaScript"> 
function urlmegaupload(e) {
var patron = /^http:\/\/www\.megaupload\.com\/\?d=[0-9a-z]/
	// Comparamos con Patron
	if (patron.test(e))	{
		alert( "Enlace Correcto" );
		//document.formdown.submit();
	}
	else {
		alert ( '"'+ e + '" no concuerda con un enlace MegaUpload \n Ejemplo : http://www.megaupload.com/?d=9MY7CM9X' );
		//document.formdown.url.value = "";
		
	}
}
// llamamos a la funcion
urlmegaupload("http://www.megaupload.com/?d=9MY7CM9X");

</script>

</html>
  #5 (permalink)  
Antiguo 09/03/2008, 11:46
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

Hola de nuevo:

No me digas por qué, no lo entiendo, pero antes de la interrogación la expresión regular pedía explicitamente una contrabarra literal para escaparla:
Código:
function urlmegaupload(e)
{
	var patron = new RegExp("^http://www\.megaupload\.com/\\?d=[A-Z0-9]{8}$", "i");
	// Comparamos con Patron
	if ( patron.test(e) )
	{
		alert( "Enlace Correcto" );
		//document.formdown.submit();
	}
	else
	{
		alert ( '"'+ e + '" no concuerda con un enlace MegaUpload \n Ejemplo : http://www.megaupload.com/?d=9MY7CM9X' );
		//document.formdown.url.value = "";
		
	}
}
// llamamos a la funcion
urlmegaupload("http://www.megaupload.com/?d=9MY7CM9X");
Si alguien nos lo puede explicar no estaría de más.


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 09/03/2008, 15:46
Avatar de marcopoloaz06  
Fecha de Ingreso: julio-2007
Ubicación: México
Mensajes: 457
Antigüedad: 16 años, 9 meses
Puntos: 11
Re: Expresion Regular

Hola, ps todo esta bien no les faltaba nada.
Este también valida links de megaupload/es/
va ahi lo dejo

Mira este puede Aceptar http://www.megaupload.com/es/?d=9MY7CM9X
Código HTML:
var exp=/^http:\/\/www\.megaupload\.com\/(es)?\/?\?d=[a-zA-Z0-9]{8}$/;
Si quieres agregar mas dominios es (es|it|en) y si no quieres permitir alguno es (?!es|en|it)

Este es el normal
Código HTML:
var exp=/^http:\/\/www\.megaupload\.com\/\?d=[a-zA-Z0-9]{8}$/;
Bueno a ver si te ayuda.
Cámara adios....
__________________
Aerolíneas Alicia :D
  #7 (permalink)  
Antiguo 09/03/2008, 17:29
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

Hola marcopoloaz06, hay que tener en cuenta que podríamos meter dos barras seguidas:
Código:
var exp=/^http:\/\/www\.megaupload\.com\/(es)?\/?\?d=[a-zA-Z0-9]{8}$/;
alert( exp.test("http://www.megaupload.com//?d=aaaaaaaa") );
Ahora he probado
Código:
var patron = /^http:\/\/www\.megaupload\.com\/\?d=[a-z0-9]{8}$/i;
alert( patron.test("http://www.megaupload.com/?d=aaaaaaaa") );
Y sí que funciona.


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #8 (permalink)  
Antiguo 09/03/2008, 17:43
 
Fecha de Ingreso: diciembre-2007
Ubicación: Argentina
Mensajes: 151
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Expresion Regular

Cita:
Iniciado por derkenuke Ver Mensaje
Hola de nuevo:

No me digas por qué, no lo entiendo, pero antes de la interrogación la expresión regular pedía explicitamente una contrabarra literal para escaparla:
[code]
function urlmegaupload(e)
{
var patron = new RegExp("^http://www\.megaupload\.com/\\?d=[A-Z0-9]{8}$", "i");

Pide una contrabarra para escapar el símbolo ?
  #9 (permalink)  
Antiguo 09/03/2008, 18:36
Avatar de marcopoloaz06  
Fecha de Ingreso: julio-2007
Ubicación: México
Mensajes: 457
Antigüedad: 16 años, 9 meses
Puntos: 11
Re: Expresion Regular

Hola derkenuke, hahah tienes razón perdón no me percate y no te voy a decir que la hice rápido :]
Pero bueno ya la arregle al menos el problema ese que descubriste, ojalá ya no tenga problema
y si tiene me dices porfa, ya la Actualice.
Código HTML:
var exp=/^http:\/\/www\.megaupload\.com\/((es|it|en)\/)?\?d=[a-zA-Z0-9]{8}$/i;
Saludos :]
__________________
Aerolíneas Alicia :D

Última edición por marcopoloaz06; 09/03/2008 a las 18:38 Razón: me falto la i
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 12:35.