sprintf-js

1.1.3 · active · verified Sun Apr 19

sprintf-js is a JavaScript implementation of the `sprintf` and `vsprintf` functions, providing C-style string formatting capabilities for both browser and Node.js environments. The current stable version is 1.1.3, last published in 2016. It supports a comprehensive set of format specifiers, including argument reordering, padding, alignment, precision, and various type conversions (e.g., binary, octal, hexadecimal, scientific notation, and JSON for objects/arrays). Its key differentiators include a complete feature set for `sprintf` functionality and its lightweight nature, having no notable runtime dependencies. The package is considered mature and stable, with infrequent updates, making it a reliable choice for string interpolation when a dedicated templating engine is overkill.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates basic string formatting with positional arguments, array-based formatting using `vsprintf`, numeric formatting with padding and precision, and an example of named arguments.

const { sprintf, vsprintf } = require('sprintf-js');

// Basic string formatting with argument reordering
const formattedString1 = sprintf('%2$s %3$s a %1$s', 'cracker', 'Polly', 'wants');
console.log(formattedString1); // Expected: "Polly wants a cracker"

// Formatting with an array of arguments
const alphabetLetters = ['a', 'b', 'c', 'd'];
const formattedString2 = vsprintf('The first 4 letters of the English alphabet are: %s, %s, %s and %s', alphabetLetters);
console.log(formattedString2); // Expected: "The first 4 letters of the English alphabet are: a, b, c and d"

// Example with numeric formatting (padding and precision)
const pi = 3.1415926535;
const formattedPi = sprintf('Pi to 2 decimal places: %.2f, padded to 10 chars with zero: %010.2f', pi, pi);
console.log(formattedPi); // Expected: "Pi to 2 decimal places: 3.14, padded to 10 chars with zero: 0000003.14"

// Example with named arguments (available since a minor version, not explicitly in 1.1.3 README but a common feature)
const user = { name: 'Dolly' };
const namedArgString = sprintf('Hello %(name)s', user);
console.log(namedArgString); // Expected: "Hello Dolly"

view raw JSON →