Ich habe den folgenden Code in Ruby. Ich möchte diesen Code in JavaScript umwandeln. Was ist der entsprechende Code in JS?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
Ich habe den folgenden Code in Ruby. Ich möchte diesen Code in JavaScript umwandeln. Was ist der entsprechende Code in JS?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
Aktualisiert für 2015 Sechs Jahre später: Die meisten Leute benutzen einen Modul-Loader, und die wichtigsten Modulsysteme haben jeweils Möglichkeiten, Vorlagen zu laden. Es ist nicht inline, aber die häufigste Art von mehrzeiligen Strings sind Templates, und Templates sollten in der Regel sowieso aus JS herausgehalten werden .
Verwendung von require.js 'text'-Plugin mit einer mehrzeiligen Vorlage in Vorlage.html
var template = require('text!template.html')
Browserify verwendet ein 'brfs'-Modul um Textdateien zu laden. Dadurch wird Ihre Vorlage tatsächlich in Ihr gebündeltes HTML eingebaut.
var fs = require("fs");
var template = fs.readFileSync(template.html', 'utf8');
Einfach.
Der einfachste Weg, mehrzeilige Zeichenketten in Javascripts zu erstellen, ist die Verwendung von Backticks ( `` ). Damit können Sie mehrzeilige Zeichenketten erstellen, in die Sie Variablen einfügen können mit ${variableName}
.
let name = 'Willem';
let age = 26;
let multilineString = `
my name is: ${name}
my age is: ${age}
`;
console.log(multilineString);
ES6
// es2015
Prüfen Sie die genaue Kompatibilität in den Mozilla-Dokumenten hier
Der ES6-Weg, dies zu tun, wäre die Verwendung von Template-Literalen:
const str = `This
is
a
multiline text`;
console.log(str);
Weitere Referenzen aquí
Sie können verwenden TypScript (JavaScript SuperSet), unterstützt mehrzeilige Zeichenketten und lässt sich ohne Overhead in reines JavaScript zurückverwandeln:
var templates = {
myString: `this is
a multiline
string`
}
alert(templates.myString);
Wenn Sie dasselbe mit einfachem JavaScript erreichen wollen:
var templates =
{
myString: function(){/*
This is some
awesome multi-lined
string using a comment
inside a function
returned as a string.
Enjoy the jimmy rigged code.
*/}.toString().slice(14,-3)
}
alert(templates.myString)
Beachten Sie, dass das iPad/Safari die folgenden Funktionen nicht unterstützt 'functionName.toString()'
Wenn Sie viel Legacy-Code haben, können Sie auch die einfache JavaScript-Variante in TypeScript verwenden (zu Bereinigungszwecken):
interface externTemplates
{
myString:string;
}
declare var templates:externTemplates;
alert(templates.myString)
und Sie können das Multiline-String-Objekt aus der einfachen JavaScript-Variante verwenden, bei der Sie die Vorlagen in eine andere Datei packen (die Sie in das Bundle einbinden können).
Sie können TypeScript ausprobieren unter
http://www.typescriptlang.org/Playground
Gibt es eine Dokumentation über die iPad/Safari-Beschränkung? MDN scheint zu glauben, dass alles in Ordnung ist - developer.mozilla.org/de-US/docs/Web/JavaScript/Reference/
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.