Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/08/2008, 09:48
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 7 meses
Puntos: 45
Respuesta: cambiar último caracter de una cadena

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 Ver Mensaje
Puedes usar el método replace() de la cadena.
Por ejemplo:
Código PHP:
msg msg.replace(',''.'); 
Cita:
Iniciado por Un_Tico Ver Mensaje
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
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.