2010-04-23 18 views
50

Buscando hacer formato de salida (funcionalidad tipo sprintf) en node.js, pero antes de escribirlo me preguntaba si hay algo similar incorporado (he rastreado los documentos inútilmente) o si alguien ya escribió un módulo.¿Hay un sprintf equivalente para node.js

Muchas gracias

+0

Yo sugeriría mirar a [SO este hilo] (http://stackoverflow.com/questions/610406/javascript-printf-string-format) también. – Husky

Respuesta

22

hay un par en el registro NPM:

+1

pregunto cómo llegó allí? – Shanimal

+1

Éste funciona perfectamente. –

+1

La más nueva es -https: //github.com/alexei/sprintf.js – cchamberlain

56

Ahora hay printf -como soporte en util.format().

Ejemplo:

util.format('hello %s', 'world'); 
// Returns: 'hello world' 
+0

Por lo que vale: 'function printf() {return process.stdout.write (util.format.apply (null, arguments)); } –

+54

Además, el soporte en 'util.format' es muy muy básico: no'% 5d' o '% 5.3f' ni nada por el estilo, por lo que desafortunadamente no es una verdadera solución' sprintf'. – lapo

+3

Similar al comentario de @Elliot Foster, también podría hacer 'var printf = require ('util'). Format'; –

5

console.log funciona bien.

console.log('%d hours', 4); // 4 hours 
console.log('The %2$s contains %1$d monkeys', 4, 'tree'); // The tree contains 4 monkeys 
+3

El primer ejemplo funciona en el nodo 0.10.18, pero el segundo falla por completo: los 2 $/1 $ necesita ser eliminado para obtener la interpolación de parámetros, y luego los parámetros deben estar en el orden correcto; de lo contrario, obtendrá: console.log ('The% s contiene% d monkeys', 4, 'tree'); devuelve: El 4 contiene monos NaN '' ' – FGM

+0

El segundo ejemplo funciona en la consola de Chrome (v33). Per @ FGM, 'console.log ('The% s contains% d monkeys', 'tree', 4);' funciona en el nodo v0.10.26. – joemaller

+1

Esto ni siquiera funciona .... – sleepycal

Cuestiones relacionadas