понедельник, 26 августа 2013 г.

[блогеру на заметку] Метод String.format() для форматирования строк в Javascript

В различных языках программирования есть свои стандартные механизмы форматирования строк. Но в JavaSсript, увы, никакой стандартной функции нет. Более того, её нет и в самом распространённом фреймворке для JavaSсript — jquery.

Поэтому вот простая функция, которая выполняет форматирование образом, схожим с тем, что применяется в библиотеке MicrosoftAjax:

String.prototype.format = String.prototype.f = function () {
    var args = arguments;
    return this.replace(/\{\{|\}\}|\{(\d+)\}/g, function (m, n) {
        if (m == "{{") { return "{"; }
        if (m == "}}") { return "}"; }
        return args[n];
    });
};

Эта фунция заменяет в строке фрагменты вида {0}, {1}, {2} и т.п. на значения соответствующих аргументов метода format(). Также метод доступен по краткому имени f().
Чтобы символы фигурных скобок воспринимались без интерпретации, пишите их дважды. Т.е. "{{" даст "{", а "}}" даст "}".

Теперь вместо трудночитаемого кода типа '<a href="' + addr + '">' + text + '</a>' вы можете писать гораздо более простое и понятное '<a href="{0}">{1}</a>'.f(addr, text).

Отправить комментарий