Woraleeee, algo asi como un word que reemplaza las palabras, pero en vez de palabras quieres reemplazar un caracter, buenooo, veamos....
y lo primero que tenemos que hacer es crear un array con los caracteres "no validos" y los caracteres por los que se van a reemplazar, y un timer que verificara el contenido del text para reemplazarlo, para el array tratemos de minimizar un poco en vez de el clasico array de mil lineas.
arr[0]= 1
arr[1]= 2
arr[2]= 3
arr[3]= n..
usemos un JSON, por lo cual queda de la siguiente manera...
Código Javascript
:
Ver originalvar MyWords= {'Find':['#', '&', '$', '%', '/', '{', '}'], 'Replace':['a', 'b', 'c', 'd', 'e', 'f', 'g']};
var tiempo = setInterval('PARSE_CHARACTER();', 10);
una vez hecho esto construiremos una función que obtendra el valor del primer textbox y validara mediante el array que caracter no es válido y lo reemplazara, asignando el nuevo valor al textbox automático
Código Javascript
:
Ver originalfunction PARSE_CHARACTER(){
try{
var TempTxt=document.getElementById('txt_manual');
var MyString=TempTxt.value;
var NewText;
for(var i=0;i<MyWords.Find.length;i++){
while(MyString.indexOf(MyWords.Find[i])>-1) {
pos = MyString.indexOf(MyWords.Find[i]);
MyString = "" + (MyString.substring(0, pos) + MyWords.Replace[i] +
MyString.substring((pos + MyWords.Find[i].length), MyString.length));
}
}
var MyTempTxt=document.getElementById('txt_auto');
MyTempTxt.value=MyString;
}catch(e){
alert("UNKNOW EXCEPTION");
}
}
paso por paso, lo primero que hace esta función es obtener el valor del primer textbox y asignarselo a la variable MyString.
var TempTxt=document.getElementById('txt_manual');
var MyString=TempTxt.value;
Mediante el For recorremos todos los valores del array y mediante el while buscamos si existe cada una de ellas en MyString
for(var i=0;i<MyWords.Find.length;i++){
while(MyString.indexOf(MyWords.Find[i])>-1) {
si existe substituimos...
MyString = "" + (MyString.substring(0, pos) + MyWords.Replace[i] +
MyString.substring((pos + MyWords.Find[i].length), MyString.length));
y el nuevo valor se lo asignamos al txt_auto...
var MyTempTxt=document.getElementById('txt_auto');
MyTempTxt.value=MyString;
el bloque
try{}catch(e){} nos enviara un alerta pos si algo sale mal
alert("UNKNOW EXCEPTION"); que no lo creo...
y nuestro código juntadito y armadito, queda de la siguiente manera...
Código HTML:
Ver originalvar MyWords= {'Find':['#', '&', '$', '%', '/', '{', '}'], 'Replace':['a', 'b', 'c', 'd', 'e', 'f', 'g']};
var tiempo = setInterval('PARSE_CHARACTER();', 10);
function PARSE_CHARACTER(){
try{
var TempTxt=document.getElementById('txt_manual');
var MyString=TempTxt.value;
var NewText;
for(var i=0;i<MyWords.Find.length;i++){
while(MyString.indexOf(MyWords.Find[i])>-1) {
pos = MyString.indexOf(MyWords.Find[i]);
MyString = "" + (MyString.substring(0, pos) + MyWords.Replace[i] +
MyString.substring((pos + MyWords.Find[i].length), MyString.length));
}
}
var MyTempTxt=document.getElementById('txt_auto');
MyTempTxt.value=MyString;
}catch(e){
}
}
<input type="text" id="txt_manual" /> <input type="text" id="txt_auto" />
espero que te sea de ayuda.... y cualquier cosa comentas...
EXITO !!!