Foros del Web » Programando para Internet » Javascript »

cambiar último caracter de una cadena

Estas en el tema de cambiar último caracter de una cadena en el foro de Javascript en Foros del Web. Hoala a todos, Yo tengo una cadena que le voy agregando textos dependiendo de los "if" de la siguiente manera: Código HTML: var msg = ...
  #1 (permalink)  
Antiguo 01/08/2008, 10:46
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
cambiar último caracter de una cadena

Hoala a todos,

Yo tengo una cadena que le voy agregando textos dependiendo de los "if" de la siguiente manera:

Código HTML:
var msg = "Los siguientes campos son obligatorios: ";

if(campo1=="") msg += "campo1, ";
if(campo2=="") msg += "campo2, ";
if(campo3=="") msg += "campo3, ";
if(campo4=="") msg += "campo4, ";

document.capaalert.innerHTML = msg;
lo que deseo hacer es reemplazar la ultima coma por un punto.

Buscando por internet, solo he encontrado ejemplos para reemplazar coincidencias de caracteres, o separar cadenas,u obtener la posición de un caracter, pero lo que yo necesito es reemplazar el último caracter.

Alguien sabe como hacerlo?

Gracias
  #2 (permalink)  
Antiguo 01/08/2008, 10:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: cambiar último caracter de una cadena

Puedes usar el método replace() de la cadena.
Por ejemplo:
Código PHP:
msg msg.replace(',''.'); 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 01/08/2008, 11:10
Avatar de Un_Tico  
Fecha de Ingreso: julio-2008
Ubicación: Cartago, Costa Rica
Mensajes: 176
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: cambiar último caracter de una cadena

Mmm....

Eso estaría bien pero remplazaría todas las comas, prueba así:

Código HTML:
msg[msg.lastIndexOf(',')]='.';
Saludos...
  #4 (permalink)  
Antiguo 01/08/2008, 11:33
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: cambiar último caracter de una cadena

Gracias, pero no me funciona, he puesto exctamente esto:

Código HTML:
		msg_error[msg_error.lastIndexOf(',')]='.';
		msg_error2[msg_error2.lastIndexOf(',')]='.';
El contenido de las cadenas es:

msg_error: "* the following fields are required: confirm given name, confirm family name, address, city, state/province, zip or postal code, country, e-mail address, confirm e-mail address, phone number, birth date, "

msg_error2: "* the following fields have an mistake: insert a valid e-mail address, enter a valid birth date in dd-mm-yyyy, "

Aguna otra idea más????

Gracias
  #5 (permalink)  
Antiguo 01/08/2008, 11:45
Avatar de Un_Tico  
Fecha de Ingreso: julio-2008
Ubicación: Cartago, Costa Rica
Mensajes: 176
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: cambiar último caracter de una cadena

Disculpa, no lo habia probado, y sí eso no funciona, proba asi:

Código HTML:
<script type="text/javascript">
var msg 			= 'text1, text2, text3,';
var output 			= '';
for(var i=0;i<msg.length;i++){
	if(i==msg.lastIndexOf(',')){
		output += '.';	
	}else{
		output += msg.charAt(i);
	}
	
}
document.write(output);
</script> 
Suerte... Saludos...
  #6 (permalink)  
Antiguo 01/08/2008, 12:09
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: cambiar último caracter de una cadena

Hola Un_Tico, otra vez ayudandome y yo dantode la lata, jajaja, creo que mejor intercambiamos msn y me ayudas más rápido, jajajajaja


Al principio no me salía, pero leyendo bien tu código me di cuenta que ahora no tenía que sacar el msg, sino el ouput (es que no vi el document.write, jejeje)

Muchas gracias

Saludos

Carlos
  #7 (permalink)  
Antiguo 02/08/2008, 09:48
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 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.
  #8 (permalink)  
Antiguo 02/08/2008, 17:04
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: cambiar último caracter de una cadena

muy buen aporte derkenuke. yo estaba pensando que quizá se pueda substituir con un substring o algo por le estilo, pero tendría que pensarlo bien antes de postear alguna posible solución, sin embargo, creo que tu aportación es mucho mejor.
__________________
twitter: @imbuzu
  #9 (permalink)  
Antiguo 04/08/2008, 10:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: cambiar último caracter de una cadena

Excelente el aporte derkenuke .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 04/08/2008, 12:28
Avatar de Un_Tico  
Fecha de Ingreso: julio-2008
Ubicación: Cartago, Costa Rica
Mensajes: 176
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: cambiar último caracter de una cadena

Muy bueno el aporte, siempre se aprende algo nuevo....

Saludos....
  #11 (permalink)  
Antiguo 06/08/2008, 11:33
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: cambiar último caracter de una cadena

Muchas gracias chicos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 10:19.