sf
String formatting library for node.js.
Installation
$ npm install sf
Quick Examples
var sf = require("sf");
sf("{who} has a {what}", { who: 'dog', what: 'tail' });
sf("{0} has a {1}", 'dog', 'tail');
sf("{0:#,##0.00}", 2123.1);
sf("{0,15:#,##0.00}", 2123.1);
sf("{a.b}", { a: { b: 'test' }});
sf("{a.z.c}", { a: { b: 'test' }});
sf("{a.?z.?c}", { a: { b: 'test' }});
sf("{a[0]}", { a: [ 'foo', 'bar' ]});
sf("{a[-1]}", { a: [ 'foo', 'bar' ]});
sf.log("{who} has a {what}", { who: 'dog', what: 'tail' });
Format Specifiers
The format is similar to C#'s string.format. The text inside the curly braces is {indexOrName[,alignment][:formatString]}.
If alignment is positive the text is right aligned. If alignment is negative it will be left aligned.
Object
Specifier | Name |
---|
json | JSON.stringify |
inspect | util.inspect |
Numbers
Specifier | Name | Example | Output |
---|
0 | Zero placeholder | {0:00.0000} | 02.1200 |
# | Digit placeholder | {0:#,###} | 1,234 |
x | Lowercase hex | {0:x4} | 01fc |
X | Uppercase hex | {0:X4} | 01FC |
Dates
Specifier | Name | Example |
---|
sd | Short date | 10/12/2002 |
D | Long date | December 10, 2002 |
t | Short time | 10:11 PM |
T | Long time | 10:11:29 PM |
fdt | Full date & time | December 10, 2002 10:11 PM |
F | Full date & time (long) | December 10, 2002 10:11:29 PM |
g | Default date & time | 10/12/2002 10:11 PM |
G | Default date & time (long) | 10/12/2002 10:11:29 PM |
md | Month day pattern | December 10 |
r | RFC1123 date string | Tue, 10 Dec 2002 22:11:29 +0500 |
s | Sortable date string | 2002-12-10T22:11:29 |
d | Date single digit | 1 |
dd | Date leading zero | 01 |
ddd | Short day name | Mon |
dddd | Long day name | Monday |
f | Fraction of second (1 digit) | 1 |
ff | Fraction of second (2 digit) | 24 |
fff | Fraction of second (3 digit) | 345 |
h | Hour 12-hour format 1 digit | 5 |
hh | Hour 12-hour format 2 digits | 05 |
H | Hour 24-hour format 1 digit | 5 |
HH | Hour 24-hour format 2 digits | 05 |
mm | Minutes 2 digits | 23 |
M | Month single digit | 2 |
MM | Month leading zero | 02 |
MMM | Month short name | Feb |
MMMM | Month long name | February |
ss | Seconds 2 digits | 54 |
tt | AM/PM | AM |
yy | Year 2 digits | 12 |
yyyy | Year 4 digits | 2012 |
zz | Time zone offset | 05 |
+zz | Time zone offset leading + | +05 |
zzz | Time zone offset full | 05:00 |
zzzz | Time zone offset full | 0500 |
+zzzz | Time zone offset full leading + | +0500 |
Helper Functions
- sf.log(formatString [, args...]);
- sf.info(formatString [, args...]);
- sf.warn(formatString [, args...]);
- sf.error(formatString [, args...]);