Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2007, 16:06
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 4 meses
Puntos: 45
¿replace no puede llevar una función nativa?

Me ha surgido la curiosidad. Intento poner en mayúsculas la primera letra de cada palabra con un replace:

Código:
var original="hello how are you";
var resultado="Hello How Are You";
var prueba1 = original.replace(/\b([a-z])/g, "$1".toUpperCase() );
var prueba2 = original.replace(/\b([a-z])/g, function($1) {
	return $1.toUpperCase();
} );

if( resultado === prueba1 ) document.write("Éxito al hacerlo directamente: "+prueba1+"<br/>");
else	document.write("Error haciéndolo directamente: "+prueba1+"<br/>");
if( resultado === prueba2 ) document.write("Éxito al hacerlo con una function auxiliar: "+prueba2+"<br/>");
else	document.write("Error haciéndolo con function auxiliar: "+prueba2+"<br/>");
El resultado de esto (FF2) es:
Cita:
Error haciéndolo directamente: hello how are you
Éxito al hacerlo con una function auxiliar: Hello How Are You
No me lo explico, y tampoco he encontrado razones por la red. ¿replace no puede llevar directamente una función nativa como toUpperCase? ¿O es que no puede con los métodos?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.