Foros del Web » Programando para Internet » Javascript »

expresiones regulares

Estas en el tema de expresiones regulares en el foro de Javascript en Foros del Web. Buenas, Queria saber como hacer mediante expresiones regulares que el usuario solo pueda poner una web. Ejemplo: www.google.es que permita solo poner esto y nada ...
  #1 (permalink)  
Antiguo 25/04/2011, 04:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
expresiones regulares

Buenas,

Queria saber como hacer mediante expresiones regulares que el usuario solo pueda poner una web.

Ejemplo:

www.google.es
que permita solo poner esto y nada mas aunque si que se permita cambiar el es por el com...

Saludos
  #2 (permalink)  
Antiguo 25/04/2011, 05:47
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: expresiones regulares

inténtalo con esta expresión
Cita:
/(ht(t)p\:\/\/www\.(?!misitio))([\.com|\.es])/
  #3 (permalink)  
Antiguo 25/04/2011, 07:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: expresiones regulares

Cita:
Iniciado por IsaBelM Ver Mensaje
inténtalo con esta expresión
al final decidi solamente insertar web youtube.

tengo esta expresion pero no funciona del todo bien.

Código Javascript:
Ver original
  1. var exprecion = /w{3}\.\youtube\.com\/watch\?v=([\w-]{11}).*/;

si pongo un enlace asi www.youtube.com/watch?v=HdCI9w3LLoQ me da ok pero si por ejemplo modifico y pongo wwww.youtube.com/watch?v=HdCI9w3LLoQ. tambien me da ok y no deberia ya que puse que solo haya un maximo de tres www al princpio y que alfinal de la cadena solo soporte caracter alfanumérico y puse un .
  #4 (permalink)  
Antiguo 25/04/2011, 08:33
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: expresiones regulares

usa los caracteres especiales "^" y "$"
  #5 (permalink)  
Antiguo 25/04/2011, 08:51
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: expresiones regulares

Cita:
Iniciado por IsaBelM Ver Mensaje
usa los caracteres especiales "^" y "$"
donde los tendria que agregar ??
  #6 (permalink)  
Antiguo 25/04/2011, 10:04
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: expresiones regulares

el caret (^) va al principio y el signo de dolar ($) va al final. estos son anclas que le indican al motor desde que posicion del string debe realizarse la busqueda. en este caso, significa que de principio a fin el string debe estar compuesto por lo indicado en la expresion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 25/04/2011, 10:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: expresiones regulares

Cita:
Iniciado por zerokilled Ver Mensaje
el caret (^) va al principio y el signo de dolar ($) va al final. estos son anclas que le indican al motor desde que posicion del string debe realizarse la busqueda. en este caso, significa que de principio a fin el string debe estar compuesto por lo indicado en la expresion.
pues agrege los signos que me comentaron pero continua igual.

Código Javascript:
Ver original
  1. var exprecion = /^w{3}\.\youtube\.com\/watch\?v=([\w-]{11}).*$/;
  #8 (permalink)  
Antiguo 25/04/2011, 13:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: expresiones regulares

mas o menos es esto lo que has de tener
Cita:
function fnc(c) {
var str = c.campo.value;
var pat=/^w{3}\.\youtube\.com\/watch\?v=([\w-]{11}).*$/;
return (pat.test(str));
}
se usa el método test(), que devuelve true o false
  #9 (permalink)  
Antiguo 26/04/2011, 05:06
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: expresiones regulares

Cita:
Iniciado por IsaBelM Ver Mensaje
mas o menos es esto lo que has de tener

se usa el método test(), que devuelve true o false
pues si, haciendolo del modo que me indicas me funciona. Pero porque si lo hago de esta forma no??
Código Javascript:
Ver original
  1. var contenido = document.getElementById("contenido").value;
  2.  
  3. var pat=/^w{3}\.\youtube([\.com|\.es])\/watch\?v=([\w-]{11,20})*$/;
  4.  
  5.  
  6. if ((contenido.match(pat))) {  
  7.         alert('Password Correcta');    
  8.    } else {  
  9.        alert(' incorrecta');  
  10.  
  11.    }  
  12. }

para que me funcione bien tengo que usar test(str) en ves del match(pat).
porque????
  #10 (permalink)  
Antiguo 26/04/2011, 07:02
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: expresiones regulares

mientras que test() devuelve true (si hay una coincidencia total) y false (si no hay una coincidencia total), match() devuelve el string coincente. es decir, en tu caso con que sólo evaluaras "youtube", la alerta que se levantaría sería "Password Correcta"
  #11 (permalink)  
Antiguo 26/04/2011, 07:36
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: expresiones regulares

Cita:
Iniciado por IsaBelM Ver Mensaje
mientras que test() devuelve true (si hay una coincidencia total) y false (si no hay una coincidencia total), match() devuelve el string coincente. es decir, en tu caso con que sólo evaluaras "youtube", la alerta que se levantaría sería "Password Correcta"
ok, gracias.

una duda mas que tengo. ahora le agrege a la cadena para que aceptara .com .es pero no me funciona.

var pat=/^w{3}\.\youtube([\.com|\.es])\/watch\?v=([\w-]{11,20})*$/;
  #12 (permalink)  
Antiguo 26/04/2011, 08:04
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: expresiones regulares

inténtalo de este modo
Cita:
/^w{3}\.\youtube\.(com|es)\/watch\?v=([\w-]{11}).*$/
  #13 (permalink)  
Antiguo 26/04/2011, 09:29
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: expresiones regulares

Cita:
Iniciado por IsaBelM Ver Mensaje
inténtalo de este modo
si funciona aunque no entiendo porque le sacas [] en teoria esto sirve para saber si es un valor u otro no??
  #14 (permalink)  
Antiguo 26/04/2011, 09:42
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: expresiones regulares

Cita:
... en teoria esto sirve para saber si es un valor u otro no??
si y no, al menos no de la forma en que lo estas percibiendo. los corchetes significa clase o rango. tiene el mismo significado que las clases \w \d \s, lo unico que tu defines el conjunto de caracteres. entonces, sucede que dentro de los corchetes ciertos caracteres pierden su significado mientras que otros adquieren un proposito. por ejemplo, el guion (-) y el signo de intercalacion (^) adquieren un significado mientras que el punto (.), barra vertical (|) y otros caracteres dejan de tener un proposito dentro de los corchetes.

Código:
/[com|es]/.test("|"); // true;
// cualquiera de los caracteres dentro del corchete devuelve true ;
digamos que es algo parecido como...
Código:
/(c|o|m|\||e|s)/.test("|");
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

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 22:34.