sprintf
by Artem
JavaScript
'use strict';
const sprintf = (format, num, str) => {
var numRe = /\d+/g;
var strRe = /[a-zA-Z]+/g;
var mapRe = {
'%d': numRe,
'%s': strRe,
};
const getRe = (val) => {
if (typeof val === 'number') {
return mapRe['%d'];
}
if (typeof val === 'string') {
return mapRe['%s'];
}
};
return [num, str].reduce((acc, next) => {
return format.replace(getRe(next), next);
}, format);
}
var num = 5;
var location = 'дереве';
var format = '%d обезьян сидят на %s';
console.log(format, num, location);