util: fix util.format() formatting of %%
This commit is contained in:
parent
d6f0ecc622
commit
578ba76e6c
@ -33,12 +33,12 @@ exports.format = function(f) {
|
|||||||
var args = arguments;
|
var args = arguments;
|
||||||
var len = args.length;
|
var len = args.length;
|
||||||
var str = String(f).replace(formatRegExp, function(x) {
|
var str = String(f).replace(formatRegExp, function(x) {
|
||||||
|
if (x === '%%') return '%';
|
||||||
if (i >= len) return x;
|
if (i >= len) return x;
|
||||||
switch (x) {
|
switch (x) {
|
||||||
case '%s': return String(args[i++]);
|
case '%s': return String(args[i++]);
|
||||||
case '%d': return Number(args[i++]);
|
case '%d': return Number(args[i++]);
|
||||||
case '%j': return JSON.stringify(args[i++]);
|
case '%j': return JSON.stringify(args[i++]);
|
||||||
case '%%': return '%';
|
|
||||||
default:
|
default:
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
@ -58,4 +58,5 @@ assert.equal(util.format('%s:%s', undefined), 'undefined:%s');
|
|||||||
assert.equal(util.format('%s:%s', 'foo'), 'foo:%s');
|
assert.equal(util.format('%s:%s', 'foo'), 'foo:%s');
|
||||||
assert.equal(util.format('%s:%s', 'foo', 'bar'), 'foo:bar');
|
assert.equal(util.format('%s:%s', 'foo', 'bar'), 'foo:bar');
|
||||||
assert.equal(util.format('%s:%s', 'foo', 'bar', 'baz'), 'foo:bar baz');
|
assert.equal(util.format('%s:%s', 'foo', 'bar', 'baz'), 'foo:bar baz');
|
||||||
|
assert.equal(util.format('%%%s%%', 'hi'), '%hi%');
|
||||||
|
assert.equal(util.format('%%%s%%%%', 'hi'), '%hi%%');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user