Я пытаюсь переместить некоторый код JavaScript из MicrosoftAjax в JQuery. Я использую эквиваленты JavaScript в MicrosoftAjax популярных методов .net, например String.format (), String.startsWith () и т. Д. Есть ли для них эквиваленты в jQuery?
javascript
jquery
string.format
Валид Эйсса
источник
источник
Ответы:
Исходный код ASP.NET AJAX доступен для справки, так что вы можете выбрать через него , и включают в себя части , которые вы хотите продолжить использовать в отдельный файл JS. Или вы можете перенести их на jQuery.
Вот функция форматирования ...
И вот заканчивается с и начинается с прототипа функции ...
источник
{0}{1}
,{0}
сначала будет заменено, а затем будут заменены все вхождения{1}
как в уже замещенном тексте, так и в исходном формате.Это более быстрый / простой (и прототип) вариант функции, который опубликовал Джош:
Использование:
Я использую это так много, что я добавил это просто
f
, но вы также можете использовать более многословныйformat
. например'Hello {0}!'.format(name)
источник
Многие из вышеперечисленных функций (кроме функций Джулиана Джелфса) содержат следующую ошибку:
Или для вариантов, которые считаются в обратном направлении от конца списка аргументов:
Вот правильная функция. Это прототипный вариант кода Джулиана Джелфса, который я немного напряг:
И вот немного более продвинутая версия того же самого, которая позволяет вам избежать скобок, удваивая их:
Это работает правильно:
Вот еще одна хорошая реализация Блэра Митчелмора с кучей приятных дополнительных функций: https://web.archive.org/web/20120315214858/http://blairmitchelmore.com/javascript/string.format
источник
Сделал функцию форматирования, которая принимает в качестве аргументов коллекцию или массив
Использование:
Код:
источник
String.prototype
?Существует (несколько) официальный вариант: jQuery.validator.format .
Поставляется с плагином проверки jQuery 1.6 (по крайней мере).
Совсем похоже на
String.Format
найденное в .NET.Редактировать Исправлена неработающая ссылка.
источник
Если вы используете плагин проверки, вы можете использовать:
jQuery.validator.format("{0} {1}", "cool", "formatting") = 'cool formatting'
http://docs.jquery.com/Plugins/Validation/jQuery.validator.format#templateargumentargumentN ...
источник
Хотя это не совсем то, о чем просил Q, я построил аналогичный, но использующий именованные заполнители вместо нумерованных. Я лично предпочитаю называть аргументы и просто отправлять объект в качестве аргумента (более подробный, но более простой в обслуживании).
Вот пример использования ...
источник
Используя современный браузер, который поддерживает EcmaScript 2015 (ES6), вы можете наслаждаться строками шаблонов . Вместо форматирования вы можете напрямую вставить в него значение переменной:
Обратите внимание, что строка шаблона должна быть написана с использованием обратных тиков (`).
источник
Ни один из представленных ответов пока не имеет очевидной оптимизации использования enclosure для однократной инициализации и сохранения регулярных выражений для последующего использования.
Кроме того, ни один из примеров не учитывает реализацию формата (), если он уже существует.
источник
Вот мой:
Не пуленепробиваемый, но работает, если вы используете его разумно.
источник
Прошло уже в конце сезона, но я только что посмотрел на ответы, и у меня есть стоимость tuppence:
Использование:
Метод:
Результат:
источник
Теперь вы можете использовать литералы шаблона :
источник
Вот моя версия, которая может избежать '{' и очистить эти неназначенные заполнители.
источник
Следующий ответ, вероятно, наиболее эффективен, но имеет одну оговорку: он подходит только для сопоставления аргументов от 1 до 1. При этом используется самый быстрый способ объединения строк (аналогично строителю строк: массив строк, объединенный). Это мой собственный код. Вероятно, нужен лучший разделитель, хотя.
Используйте это как:
источник
Это нарушает принцип СУХОГО, но это краткое решение:
источник
источник
Я не мог получить ответ Джоша Стодолы на работу, но следующее сработало для меня. Обратите внимание на спецификацию
prototype
. (Проверено на IE, FF, Chrome и Safari.):s
на самом деле должна быть клоном изthis
так, чтобы не быть разрушительным методом, но это на самом деле не нужно.источник
В продолжение замечательного ответа adamJLev выше , вот версия TypeScript:
источник
У меня есть плункер, который добавляет его к прототипу строки: string.format Он не такой короткий, как некоторые другие примеры, но гораздо более гибкий.
Использование аналогично версии C #:
Также добавлена поддержка использования имен и свойств объекта
источник
Вы также можете закрыть массив такими заменами.
или вы можете попробовать
bind
источник