jueves, 25 de julio de 2013

Convertir numéricos con toFixed() y toPrecision() en Javascript

Estas dos funciones son una forma muy sencilla de convertir o formatear valores numéricos en Javascript.

Con la función toFixed() convertimos un número a string con una longitud exacta de valores decimales. Así pues, si se especifican más decimales de los que tiene el valor numérico original, nos añadirá ceros por detrás.

La función toPrecision() en cambio lo que hace es formatear un número a una longitud total concreta. Al igual que con la anterior función, nos añade ceros por detrás si la longitud especificada es mayor que la que tiene la variable numérica.

Veamos algunos ejemplos:


var num = 5.56789;
document.write(num.toFixed()); //6 -> sin decimales
document.write(num.toFixed(2)); //5.57
document.write(num.toFixed(4)); //5.5679
document.write(num.toFixed(6)); //5.567890 -> añade ceros por detrás
document.write(num.toFixed(8)); //5.56789000 -> añade ceros por detrás

document.write(num.toPrecision()); //5.56789 -> devuelve el número original
document.write(num.toPrecision(2)); //5.6
document.write(num.toPrecision(4)); //5.568
document.write(num.toPrecision(6)); //5.56789
document.write(num.toPrecision(8)); //5.5678900 -> añade ceros por detrás

Convertir cadenas de texto en números en Javascript

Os dejo un par de funciones Javascript muy útiles para convertir cadenas de texto a números enteros y decimales. Estas funciones se llaman parseInt y parseFloat.

La función parseInt evalúa una cadena y devuelve un entero. La sintaxis es parseInt(string, radix) donde string es la cadena a convertir y radix se utiliza para especificar el sistema numérico a usar. Si el parámetro radix no se especifica, Javascript asume lo siguiente:
  • Si la cadena empieza por "0x", Javascript interpreta que se tiene que convertir a hexadecimal.
  • Si empieza por "0" se asume que se quiere convertir a octal.
  • Si empieza por cualquier otra cadena se asume que el número base 10 (sistema decimal).
Ejemplos de uso:
<script>
document.write(parseInt("10")); //10
document.write(parseInt("10.33")); //10
document.write(parseInt("34 45 66")); //34
document.write(parseInt(" 60 ")); //60
document.write(parseInt("40 years")); //40
document.write(parseInt("He was 40")); //NaN
document.write(parseInt("10",10)); //10
document.write(parseInt("010")); //10
document.write(parseInt("10",8)); //8
document.write(parseInt("0x10")); //16
document.write(parseInt("10",16)); //16
</script>


La función parseFloat evalúa la cadena y devuelve un número decimal. Al igual que con parseInt, esta función analiza caracter a caracter hasta que encuentra el final de la cadena o un caracter no válido. Si el primer caracter no es numérico devuelve NaN.
Veamos algunos ejemplos:
<script>
document.write(parseFloat("10")); //10
document.write(parseFloat("10.33")); //10.33
document.write(parseFloat("34 45 66")); //34
document.write(parseFloat(" 60 ")); //60
document.write(parseFloat("40 years")); //40
document.write(parseFloat("He was 40")); //NaN
</script>

Fuente:

martes, 23 de julio de 2013

Parser online de JSON

Si trabajamos con la notación JSON nos habrá ocurrido más de una vez que al tratar de convertir una cadena a un objeto el parser nos ha indicado un error.

En lenguajes como PHP, la única información que podemos obtener al parsear es el tipo de error, pero si la cadena es larga nos puede costar un buen rato encontrar el motivo.

Para solucionar este problema os dejo el enlace de un parser online http://json.parser.online.fr/ en el que simplemente pegaremos la cadena JSON en el textarea de la izquierda y automáticamente nos evaluará si es válido y en el caso en que encuentre algún error nos indicará en qué línea y qué tipo de error es. Se trata de una herramienta muy útil y que a cualquier desarrollador le puede venir bien en algún momento.

lunes, 22 de julio de 2013

Funciones PHP en Javascript. Proyecto php.js

Con este post pretendemos hablar de un proyecto de código libre que ya lleva mucho tiempo activo, php.js. Se trata de una gran colección de funciones Javascript basadas en muchas de las funciones más comunes y utilizadas de PHP.

La web del proyecto es http://phpjs.org, que como podremos ver proporciona el código fuente de las funciones de forma totalmente libre y gratuita.

El apartado Functions es especialmente interesante ya que en él encontramos el listado completo de las funciones creadas agrupadas por categorías y pulsando sobre cada función podemos obtener el código fuente para añadirlo a nuestra aplicación web.

El repositorio para las descargas lo encontramos en github cuya url es https://github.com/kvz/phpjs.


Obtener dirname y basename de un fichero en Javascript

Si necesitamos con Javascript obtener el nombre del directorio padre o el nombre del fichero de una ruta a fichero completa lo podemos conseguir con estas dos funciones que utilizan una expresión regular para conseguirlo:

function basename(path) {
    return path.replace(/\\/g,'/').replace( /.*\//, '' );
}

function dirname(path) {
    return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
}

domingo, 21 de julio de 2013

Aleatorizar un array en Javascript

Con esta sencilla función conseguimos ordenar de forma aleatoria los elementos de un array:
function shuffle(arr) {
 for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i,10), x = arr[--i], arr[i] = arr[j], arr[j] = x) {}
 return arr;
}