J'ai JavaScript de cette source dans un commentaire d'un blog: frogsbrainfonction string.format JavaScript ne fonctionne pas dans IE
Il est un formateur de chaîne, et il fonctionne très bien dans Firefox, Google Chrome, Opera et Safari . Seul le problème est dans IE, où le script ne fait aucun remplacement du tout. La sortie dans les deux cas de test dans IE est seulement «bonjour», rien de plus.
S'il vous plaît aidez-moi à faire fonctionner ce script dans IE, car je ne suis pas le gourou Javascript et je ne sais pas par où commencer la recherche du problème.
Je posterai le script ici pour plus de commodité. Tous les crédits vont à Terence Honles pour le script jusqu'à présent.
// usage:
// 'hello {0}'.format('world');
// ==> 'hello world'
// 'hello {name}, the answer is {answer}.'.format({answer:'42', name:'world'});
// ==> 'hello world, the answer is 42.'
String.prototype.format = function() {
var pattern = /({?){([^}]+)}(}?)/g;
var args = arguments;
if (args.length == 1) {
if (typeof args[0] == 'object' && args[0].constructor != String) {
args = args[0];
}
}
var split = this.split(pattern);
var sub = new Array();
var i = 0;
for (;i < split.length; i+=4) {
sub.push(split[i]);
if (split.length > i+3) {
if (split[i+1] == '{' && split[i+3] == '}')
sub.push(split[i+1], split[i+2], split[i+3]);
else {
sub.push(split[i+1], args[split[i+2]], split[i+3]);
}
}
}
return sub.join('')
}
J'aime cette réponse (http://stackoverflow.com/questions/1038746/equivalent-of-string-format-in-jquery/1038930#1038930), c'est beaucoup plus concis :) – Mottie