Вы можете воспользоваться шаблонными литералами и использовать этот синтаксис:
`String text ${expression}`
Шаблонные литералы заключаются в обратный тик (``) (серьезный акцент) вместо двойных или одинарных кавычек.
Эта функция была введена в ES2015 (ES6).
пример
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b}.`);
// "Fifteen is 15.
Насколько это аккуратно?
Бонус:
Он также допускает многострочные строки в javascript без экранирования, что отлично подходит для шаблонов:
return `
<div class="${foo}">
...
</div>
`;
Поддержка браузера :
Поскольку этот синтаксис не поддерживается старыми браузерами (в основном Internet Explorer), вы можете использовать Babel / Webpack для переноса вашего кода в ES5, чтобы он работал везде.
Примечание:
Начиная с IE8 +, вы можете использовать базовое форматирование строк внутри console.log
:
console.log('%s is %d.', 'Fifteen', 15);
// Fifteen is 15.
"${foo}"
буквально $ {foo}`${foo}`
это то, что вы на самом деле хотитеFifteen is ${a + b}.
); не изменяется динамически. это всегда показывает, Пятнадцать - 15.До Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, нет, это было невозможно в javascript. Вам придется прибегнуть к:
источник
До Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, нет. Хотя вы могли бы попробовать sprintf для JavaScript, чтобы получить на полпути:
источник
ну, вы могли бы сделать это, но это не вообще вообще
Вы можете легко написать функцию, которая делает это разумно, если вам действительно нужно
источник
Полный ответ, готов к использованию:
Позвонить как
Чтобы прикрепить его к String.prototype:
Тогда используйте как:
источник
Вы можете использовать эту функцию javascript для такого рода шаблонов. Не нужно включать всю библиотеку.
Выход :
"I would like to receive email updates from this store FOO BAR BAZ."
Использование функции в качестве аргумента функции String.replace () было частью спецификации ECMAScript v3. Смотрите этот SO ответ для более подробной информации.
источник
Если вам нравится писать CoffeeScript, вы можете сделать:
CoffeeScript на самом деле является JavaScript, но с гораздо лучшим синтаксисом.
Для обзора CoffeeScript проверьте это руководство для начинающих .
источник
Если вы пытаетесь сделать интерполяцию для микротемблирования, мне нравится Mustache.js для этой цели.
источник
Я написал этот пакет npm stringinject https://www.npmjs.com/package/stringinject, который позволяет вам сделать следующее
который заменит {0} и {1} элементами массива и вернет следующую строку
или вы можете заменить заполнители на ключи объекта и значения, например:
источник
Я бы использовал обратную галочку ``.
Но если вы не знаете,
name1
когда вы создаетеmsg1
.Например, если
msg1
пришел из API.Ты можешь использовать :
Это заменит
${name2}
его стоимость.источник
Не вижу никаких внешних библиотек, упомянутых здесь, но Лодаш имеет
_.template()
,https://lodash.com/docs/4.17.10#template
Если вы уже используете библиотеку, стоит проверить, и если вы не используете Lodash, вы всегда можете выбрать методы выбора из npm,
npm install lodash.template
чтобы сократить накладные расходы.Простейшая форма -
Есть множество вариантов конфигурации также -
Я нашел пользовательские разделители наиболее интересными.
источник
Создать метод, похожий на
String.format()
Javaиспользование
источник
Мирная цитата 2020 года:
источник
Просто используйте:
источник
Uso:
источник
var hello = "foo";
console.log (my_string, привет)
источник