Javascript (13)


ucfirst de PHP en Javascript

function ucfirst(string){ 
   return string.charAt(0).toUpperCase() + string.slice(1); 
}

Por ejemplo:

foo = 'hello world!';
foo = ucfirst(foo);             // Hello world!

bar = 'HELLO WORLD!';
bar = ucfirst(bar.toLowerCase()); // Hello world!

Si la cadena esta entera en mayúsculas y se quiere tener sólo la primera, priemero se debería pasar toda a minúscula y después cambiar la primera.




Tildes en Javascript

Para mostrar tildes y otros carácteres especiales con javascript, por ejemplo en un alert() hay que hacerlo en unicode. En Nice entity hay una lista de conversión entre carácteres especiales y su versión en HTML y unicode.

Por ejemplo, á en unicode sería \u00e1, de manera que es prácticamente imposible recordar todos los carácteres, por eso lo más lógico es hacer una función que nos los convierta, así podemos escribir con los carácteres que queramos sin preocuparnos de la codificación, y luego aplicar la función.




Base64 (encode y decode) en Javascript

Me he pasado un rato buscando alguna función para codificar y decodificar (que no encriptar) cadenas de texto en base64, de la misma forma que lo haría en PHP.

Nota: No utilizar esto para “ofuscar” las contraseñas o cualquier otro dato importante, hay que tener en cuenta que cualquiera puede decodificar una cadena en base64. Lo correcto es usar algoritmos como md5 que no se pueden desvelar tan fácilmente (que yo sepa, sólo es posible con fuerza bruta).

En PHP es algo así:

<?PHP
$cadena = base64_encode('w00t');
echo $cadena; # dzAwdA==
$cadena = base64_decode('dzAwdA==');
echo $cadena; # w00t
?>

Y en Javascript, con el código que pondré a continuación, sería algo así:

<script>
var cadena = Base64.encode('w00t');
alert(cadena); // dzAwdA==
var cadena = Base64.decode('dzAwdA==');
alert(cadena); // w00t
</script>



La función str_replace() de PHP en Javascript

La función str_replace() de PHP tiene un uso muy sencillo, se le entregan 3 parámetros; la cadena a buscar, la cadena por la que se substituirá, y la cadena sobre la que se va a trabajar. Por ejemplo…

$cadena = 'Prefiero el helado de frutas del bosque';
echo $cadena;
// Prefiero el helado de frutas del bosque

$cadena = str_replace('frutas del bosque','pistacho',$cadena);
echo $cadena;
// Prefiero el helado de pistacho

Más información sobre str_replace() en la página de PHP.

Para hacerlo en Javascript se haría así:

cadena = 'Prefiero el helado de frutas del bosque';
alert(cadena);
// Prefiero el helado de frutas del bosque

cadena = cadena.replace(/frutas del bosque/g,"pistacho");
alert(cadena);
// Prefiero el helado de pistacho

Si sólo se quiere cambiar la primera coincidencia, en vez de utilizar /frutas del bosque/g debería ser "frutas del bosque". El cambio entre //g y "" es aparentemente absurdo y me ha costado varias horas de trabajo… pero de errores se aprende.