Utilisateur:Phe/sprintf.js
Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
- Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
- Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
- Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
- Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/*
* sprintf like, accepting only positionnal paramters or a dict + positionnal
* parameters.
*
* Implement only %s or %(name)s format.
*
* dict and non dict format can be mixed
*
* var dict = { 'name1' : foo', 'name2': 'bar }
* sprintf("%(name1) : %s %(name2)s", dict, "is a"); --> "foo is a bar"
*/
function sprintf(format) {
var arg = arguments;
var i = 1;
if (arg.length > 1 && typeof(arguments[1]) == "object") {
var dict = arguments[1];
i = 2;
}
return format.replace(/%\([^\)]+\)s|%(%|s)/g, function (m) {
if (m.length == 2)
return m[1] == '%' ? '%' : arg[i++];
return dict[m.slice(2,-2)];
});
}