У меня есть JavaScript из этого источника в комментарии к блогу: frogsbrain
Это формататор строк, и он отлично работает в Firefox, Google Chrome, Opera и Safari.
Единственная проблема в IE, где скрипт не заменяет вообще. Вывод в обоих тестовых случаях в IE только «привет», ничего более.
Пожалуйста, помогите мне заставить этот скрипт работать в IE, потому что я не гуру Javascript и просто не знаю, с чего начать поиск проблемы.
Я опубликую сценарий здесь для удобства. Все кредиты пока идут на Теренс Хонлес за сценарий.
// 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('')
}