Foros del Web » Programando para Internet » Javascript »

replace antes de mostrar lo escrito

Estas en el tema de replace antes de mostrar lo escrito en el foro de Javascript en Foros del Web. Jeje cómo he sufrido con esta función :p Bien, tengo esta función que muestra lo que se va escribiendo en un input Código: <script type="text/javascript"> ...
  #1 (permalink)  
Antiguo 14/05/2011, 17:33
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
replace antes de mostrar lo escrito

Jeje cómo he sufrido con esta función :p
Bien, tengo esta función que muestra lo que se va escribiendo en un input

Código:
  <script type="text/javascript">
   var caja = document.getElementById("input");
   var mostrar = document.getElementById("span");
   input.onkeyup = function ()
   {
    span.innerHTML = input.value;
   }
</script>
El problema es que necesito que antes de mostrar lo que se está escribiendo en el < span >
verifique si se ha escrito, por ejemplo, un espacio ( ) o un punto (.) y si es así lo cambie por un guión bajo (_) o por nada, respectivamente (es decir que si es un punto no lo ponga.)
Tengo una función que hace un replace entre dos array's, pero no sé cómo implementarlo junto con el otro script de arriba.

Código:
var valores = [/o/g, /a/g]
var reemplazar = ["O","A"]
for (var i=0; i<valores.length; i++)
attrString = attrString.replace(valores[i],reemplazar[i]);
Espero su ayuda y muchas gracias :)
  #2 (permalink)  
Antiguo 14/05/2011, 17:39
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: replace antes de mostrar lo escrito

Tienes que hacer lo mismo pero haciéndole el replace al value del input.
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 14/05/2011, 18:03
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
Respuesta: replace antes de mostrar lo escrito

Gracias, me ha funcionada; sólo una duda, ¿cómo puedo poner caracteres especiales como espacios o # $ % & dentro de los caracteres del array valores?
  #4 (permalink)  
Antiguo 14/05/2011, 18:06
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: replace antes de mostrar lo escrito

En las regexp podes especificar un espacio como tal ( ) o usar el caret \s.

Para los demás caracteres hay que tener cuidado con que no sean un caracter 'reservado' de las regexp como es el caso de $.

Te recomiendo leer el siguiente articulo:

https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
__________________
blog | @aijoona
  #5 (permalink)  
Antiguo 14/05/2011, 20:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años
Puntos: 0
Respuesta: replace antes de mostrar lo escrito

Gracias por su ayuda!
Aún hay un problema, y es que no cambia los espacios. En la página que me pasaste Aijoona viene como representar caracteres de signos ($%&+espacio+) Pero al momentos de ponerlos en el array para ser descartados no funciona.
Las matrices quedan así:

var valores = [/\s/g, /\//g,]
var reemplazar = ["_",""]

Sí reemplaza el / por nada, pero el espacio no lo cambia por un _, tampoco usando \r \t \v u otros.
Tampoco descarta algún otro caractes como $ % & #
¿cómo podría aplicar el espacio y los demás caracteres?
Gracias :)
  #6 (permalink)  
Antiguo 14/05/2011, 20:50
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: replace antes de mostrar lo escrito

buenas,
muestra todo el codigo referente al reemplazo de string. o mas bien realiza un ejemplo corto. hice la prueba usando las variables que acabas de mostrar combinado con el script anterior y a mi me funciona correctamente. fijate que la variable attrString contiene los cambios, por tanto tienes que usar esa variable como contenido a imprimir.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: escrito, replace
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 15:14.