Puede aprovechar Template Literals y usar esta sintaxis:
`String text ${expression}`
Los literales de plantilla están encerrados por la marca de retroceso (``) (acento grave) en lugar de comillas dobles o simples.
Esta característica se ha introducido en ES2015 (ES6).
Ejemplo
var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b}.`);
// "Fifteen is 15.
¿Qué tan limpio es eso?
Prima:
También permite cadenas de varias líneas en javascript sin escapar, lo cual es ideal para plantillas:
return `
<div class="${foo}">
...
</div>
`;
Soporte de navegador :
Como esta sintaxis no es compatible con navegadores antiguos (principalmente Internet Explorer), es posible que desee utilizar Babel / Webpack para transpilar su código en ES5 para asegurarse de que se ejecutará en todas partes.
Nota al margen:
A partir de IE8 +, puede usar el formato de cadena básico dentro console.log
:
console.log('%s is %d.', 'Fifteen', 15);
// Fifteen is 15.
"${foo}"
es literalmente $ {foo}`${foo}`
es lo que realmente quieresFifteen is ${a + b}.
); no cambia dinámicamente siempre muestra que Quince tiene 15 años.Antes de Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, no, eso no era posible en JavaScript. Tendría que recurrir a:
fuente
Antes de Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, no. Aunque podrías probar sprintf para JavaScript para llegar a la mitad:
fuente
bueno, podrías hacer esto, pero no es especialmente general
Podría escribir fácilmente una función que haga esto de manera inteligente si realmente necesitara
fuente
Respuesta completa, lista para ser utilizada:
Llamar como
Para adjuntarlo a String.prototype:
Luego use como:
fuente
Puede usar esta función de JavaScript para hacer este tipo de plantillas. No es necesario incluir una biblioteca completa.
Salida :
"I would like to receive email updates from this store FOO BAR BAZ."
El uso de una función como argumento para la función String.replace () era parte de la especificación ECMAScript v3. Vea esta respuesta SO para más detalles.
fuente
Si te gusta escribir CoffeeScript puedes hacer:
CoffeeScript en realidad ES javascript, pero con una sintaxis mucho mejor.
Para obtener una descripción general de CoffeeScript, consulte esta guía para principiantes .
fuente
Si está intentando hacer interpolación para microtemplating, me gusta Moustache.js para ese propósito.
fuente
Escribí este paquete npm stringinject https://www.npmjs.com/package/stringinject que le permite hacer lo siguiente
que reemplazará {0} y {1} con los elementos de la matriz y devolverá la siguiente cadena
o podría reemplazar marcadores de posición con claves de objeto y valores de esta manera:
fuente
Yo usaría la marca de retroceso ''.
Pero si no sabes
name1
cuándo creasmsg1
.Por ejemplo, si
msg1
proviene de una API.Puedes usar :
Reemplazará
${name2}
con su valor.fuente
No veo ninguna biblioteca externa mencionada aquí, pero Lodash tiene
_.template()
,https://lodash.com/docs/4.17.10#template
Si ya está utilizando la biblioteca, vale la pena echarle un vistazo, y si no está utilizando Lodash, siempre puede elegir métodos de npm
npm install lodash.template
para que pueda reducir los gastos generales.La forma mas simple -
También hay un montón de opciones de configuración:
Encontré los delimitadores personalizados más interesantes.
fuente
Crea un método similar al
String.format()
de Javautilizar
fuente
Cita de paz de 2020:
fuente
Simplemente use:
fuente
Uso:
fuente
var hello = "foo";
console.log (my_string, hola)
fuente