Foros del Web » Programando para Internet » Javascript »

Sustitución automática de caracter

Estas en el tema de Sustitución automática de caracter en el foro de Javascript en Foros del Web. Hola, ¿como puedo hacer uan sustitución automática de un caracter al teclearlo en un textarea? Por ejemplo, que al teclear comilla simple me la cambie ...
  #1 (permalink)  
Antiguo 01/10/2007, 04:35
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Sustitución automática de caracter

Hola, ¿como puedo hacer uan sustitución automática de un caracter al teclearlo en un textarea?

Por ejemplo, que al teclear comilla simple me la cambie por la barra |...

con el evento onKeyDown puedo detectar que se ha tecleado la comilla simple, y puedo incluso añadir el caracater de sustitucion, pero como puedo evitar que se escriba la comilla simple???

Tened en cuenta que la comilla puede haberse añadido en mitad del texto, no tiene por que haber sido al final
  #2 (permalink)  
Antiguo 01/10/2007, 08:55
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: Sustitución automática de caracter

Prueba con esto:

En el head:

<script>
sustituir=["'"]
por=["|"]
function cambiador(esto){
texto = esto.value;
for(a = 0;a < sustituir.length;a++){
texto = texto.split(sustituir[a]).join(por[a]);
}
esto.value=texto;
}
</script>

Y en el body:

<textarea onkeyup = "cambiador(this)" ></textarea>

Un saludo!

Se me olvidaba decirte que puedes añadir todos los cambios que quieras añadiendo elementos al array "sustituir" y al array "por".
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 01/10/2007 a las 09:02
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 14:46.