Foros del Web » Programando para Internet » Javascript »

Reaccionar según el texto.

Estas en el tema de Reaccionar según el texto. en el foro de Javascript en Foros del Web. Mi duda es como crear una sintaxis inteligente para bloquear al usuario si escribe mal. var url = "http://dominio.com" ; // así es como todos ...
  #1 (permalink)  
Antiguo 29/01/2011, 17:43
Avatar de raxper  
Fecha de Ingreso: enero-2010
Ubicación: ------
Mensajes: 472
Antigüedad: 14 años, 3 meses
Puntos: 2
Reaccionar según el texto.

Mi duda es como crear una sintaxis inteligente para bloquear al usuario si escribe mal.

var url = "http://dominio.com"; // así es como todos los usuarios deberían escribir en el campo de texto del formulario

Pero que tal tengo un usuario que me escribe así var url = "dominio.com"; // como hago para darme cuenta que no tiene http://

Ya intenté hacerlo con if y me ayudo en algo pero tienes ¿alguna idea?
__________________
/^sleep:\/\//;
  #2 (permalink)  
Antiguo 29/01/2011, 17:51
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Reaccionar según el texto.

Podrías validarlo con expresiones regulares:
Código Javascript:
Ver original
  1. var patt = /^http:\/\/[a-z]+\.[a-z]{2,4}$/;
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 30/01/2011, 06:42
Avatar de raxper  
Fecha de Ingreso: enero-2010
Ubicación: ------
Mensajes: 472
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Reaccionar según el texto.

esta muy interesante las expresiones regulares
Link

Nunca había escuchado expresiones regulares que tal salió, por defecto la expresión que me diste no me funciona.

Estuve curioseando
Código Javascript:
Ver original
  1. function validar(){url =  /^\d+$/;
  2. if(!url.test(links.value)){alert("No se admiten letras")}else{alert("Si se admiten números")}
  3. }

<input type="text" id="links" value=""/><input type="button" value="Evaluar" onclick="validar();"/>
__________________
/^sleep:\/\//;
  #4 (permalink)  
Antiguo 30/01/2011, 22:07
Avatar de raxper  
Fecha de Ingreso: enero-2010
Ubicación: ------
Mensajes: 472
Antigüedad: 14 años, 3 meses
Puntos: 2
De acuerdo Respuesta: Reaccionar según el texto.

Listo :D.
Código Javascript:
Ver original
  1. function validar(){url =/^http:\/\//;
  2. if(!url.test(links.value)){alert("No tiene HTTP://")}else{alert("Si Tiene HTTP://")}
  3. }

<input type="text" id="links" value=""/><input type="button" value="Evaluar" onclick="validar();"/>

¿Es necesario ponerle [a-z]?, por cierto seguiré estudiando expresiones regulares se ve muy interesante..
__________________
/^sleep:\/\//;

Última edición por raxper; 30/01/2011 a las 23:20
  #5 (permalink)  
Antiguo 31/01/2011, 00:35
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Reaccionar según el texto.

Lo que sigue a ^http:\/\/ es para validar que también se escribe un dominio. Esa expresión validaría la cadena 'http://', si necesitas validar también el dominio usa la mía.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 31/01/2011, 06:48
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Reaccionar según el texto.

prueba usando los métodos test() y replace()
Cita:
<input type="text" onkeyup="if (!/^http:\/\//.test(this.value)) {this.value= this.value.replace(this.value, function(url){return 'http://'+url});}" value="" />
  #7 (permalink)  
Antiguo 31/01/2011, 06:56
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Reaccionar según el texto.

Cita:
Iniciado por _cronos2 Ver Mensaje
Podrías validarlo con expresiones regulares:
Código Javascript:
Ver original
  1. var patt = /^http:\/\/[a-z]+\.[a-z]{2,4}$/;
Saludos (:
Permíteme un matiz (si no estoy equivocado, y no lo tomes a mal): esa expresión no validaría dominios con números en el nombre. Por lo demás, perfecto!
  #8 (permalink)  
Antiguo 31/01/2011, 08:48
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Reaccionar según el texto.

Cita:
Iniciado por WeSoRz Ver Mensaje
Permíteme un matiz (si no estoy equivocado, y no lo tomes a mal): esa expresión no validaría dominios con números en el nombre. Por lo demás, perfecto!
Cierto, habría que cambiar [a-z] por \w
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #9 (permalink)  
Antiguo 31/01/2011, 11:34
Avatar de raxper  
Fecha de Ingreso: enero-2010
Ubicación: ------
Mensajes: 472
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Reaccionar según el texto.

Cita:
Iniciado por IsaBelM Ver Mensaje
prueba usando los métodos test() y replace()
Hola IIsaBel Me gustó la forma de como lo hicistes, pero tiene un bug visual
una ves generado el http:// el usuario escribe en el intermedio de ht tp:// se genera otro http:// intentaré solucionarlo.


_cronos2 Gracias por la explicación ;).
WeSoRz x la correción ;)
__________________
/^sleep:\/\//;
  #10 (permalink)  
Antiguo 31/01/2011, 14:29
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Reaccionar según el texto.

Cita:
Iniciado por raxper Ver Mensaje
Hola IIsaBel Me gustó la forma de como lo hicistes, pero tiene un bug visual
una ves generado el http:// el usuario escribe en el intermedio de ht tp:// se genera otro http:// intentaré solucionarlo.
pero hombre eso es como decimos por aquí "buscarle tres pies al gato"

Etiquetas: Ninguno
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:38.