Hola:
Hay que recordar que en javascript los String no funcionan como Arrays, así que para el segundo caracter de una cadena no podemos hacer
str[1], sino
str.charAt(1).
Cita:
Iniciado por David el Grande Puedes usar el método replace() de la cadena.
Por ejemplo:
Código PHP:
msg = msg.replace(',', '.');
Cita:
Iniciado por Un_Tico Eso estaría bien pero remplazaría todas las comas
Me temo que
replace() usado de esa manera solo reemplaza la primera coma que encuentra, cosa que podemos utilizar en nuestro favor en este caso. Hay muchos métodos encadenados, pero que nadie se pierda, es sencillo:
Código PHP:
document.write( "uno, dos, tres, cuatro, ".split("").reverse().join("").replace(" ,", ".").split("").reverse().join("") );
El problema básico es que no existe un reverse para String, sólo para Array, por eso hay tantos
split() y
join(). Si existiera sería más legible:
Código PHP:
String.prototype.reverse = function() { return this.split("").reverse().join(""); }
document.write( "uno, dos, tres, cuatro, ".reverse().replace(" ,", ".").reverse() );
También tenemos la posibilidad de expresiones regulares:
Código PHP:
document.write( "uno, dos, tres, cuatro, ".replace(/, ([^,]*)$/,".$1") );
Y rizando el rizo podríamos sustituir la penúltima coma por una conjunción "y":
Código PHP:
document.write( "uno, dos, tres, cuatro, ".replace(/, ([^,]*)$/,".$1").replace(/, ([^,]*)$/," y $1") );
Saludos