Package Exports
- sf
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sf) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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' });
// returns: dog has a tail
sf("{0} has a {1}", 'dog', 'tail');
// returns: dog has a tail
sf("{0:#,##0.00}", 2123.1);
// returns: 2,123.10
sf("{0,15:#,##0.00}", 2123.1);
// returns: 2,123.10
sf("{a.b}", { a: { b: 'test' }});
// returns: test
sf("{a.z.c}", { a: { b: 'test' }});
// throws an error
sf("{a.?z.?c}", { a: { b: 'test' }});
// returns:
sf("{a[0]}", { a: [ 'foo', 'bar' ]});
// returns: foo
sf("{a[-1]}", { a: [ 'foo', 'bar' ]});
// returns: bar
sf.log("{who} has a {what}", { who: 'dog', what: 'tail' });
// outputs to standard out: dog has a tail
sf("{0:^d 'Days,' h:mm:ss.fff}", new sf.TimeSpan(8173818181));
// returns: 94 Days, 14:30:18.181
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 |
sf.TimeSpan
Specifier | Name | Example |
---|---|---|
y | Years | 2 |
M | Months | 6 |
d | Days | 8 |
h | Hours | 10 |
m | Minutes | 15 |
s | Seconds | 5 |
f | Fraction of Seconds | 9 |
If you prefix the specifier with '^' you will get the total number of that value. For example '^s' will output the total number of seconds in the time span. Where as 's' will only output the number of seconds in a minute.
If you repeat characters the value will be prefixed with zeros.
sf.indent(str, options)
Helper function to word wrap and indent a string.
Arguments
- str - The string to indent and wrap.
- options
- prefix - The prefix to appear at the beginning of each new line.
- wordwrap - The maximum length of each line.
Helper Functions
- sf.log(formatString [, args...]);
- sf.info(formatString [, args...]);
- sf.warn(formatString [, args...]);
- sf.error(formatString [, args...]);