3462 Stimmen

Mehrzeilige Zeichenketten in JavaScript erstellen

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

12voto

Kamil Kiełczewski Punkte 69048

Genau

Rubinrot produzieren : "This\nIs\nA\nMultiline\nString\n" - unten JS produzieren genau die gleiche Zeichenfolge

text = `This
Is
A
Multiline
String
`

// TEST
console.log(JSON.stringify(text));
console.log(text);

Dies ist eine Verbesserung gegenüber Lonnie Beste Antwort weil die Zeilenumbrüche in seiner Antwort nicht genau die gleiche Position haben wie in der Ruby-Ausgabe

0 Stimmen

Text ist string warum json.stringify?

1 Stimmen

@FlatLander dies ist nur zu Testzwecken - um zu sehen, wo genau die Zeilenumbruchzeichen sind \n (zum Vergleich mit der Ruby-Ausgabe (Arbeitsbeispiel in der Antwort verlinkt) ) - dies ist eine Verbesserung der Antwort von Lonnie, da die Zeilenumbrüche in seiner Antwort nicht genau die gleichen Positionen wie in der Ruby-Ausgabe haben

12voto

Lonnie Best Punkte 8084

Das Äquivalent in javascript ist:

var text = `
This
Is
A
Multiline
String
`;

Hier ist die Spezifikation . Siehe Browserunterstützung am Ende dieser Seite Seite . Hier sind einige Beispiele auch.

11voto

stillatmycomputer Punkte 175

Dies funktioniert in IE, Safari, Chrome und Firefox:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<div class="crazy_idea" thorn_in_my_side='<table  border="0">
                        <tr>
                            <td ><span class="mlayouttablecellsdynamic">PACKAGE price $65.00</span></td>
                        </tr>
                    </table>'></div>
<script type="text/javascript">
    alert($(".crazy_idea").attr("thorn_in_my_side"));
</script>

8 Stimmen

Denken Sie einfach darüber nach. Glauben Sie, dass das gültig ist? Glauben Sie nicht, dass es zu Anzeigeproblemen führen kann?

6 Stimmen

Warum werden die Beiträge heruntergestuft? Das ist eine kreative Antwort, wenn auch nicht sehr praktisch!

3 Stimmen

Nein, das ist es nicht. Man sollte lieber Templates verwenden: $.tmpl() ( api.jquery.com/tmpl ), oder EJS ( embeddedjs.com/getting_started.html ), usw. Ein Grund für Ablehnungen ist, dass es sich um keinen gültigen Code handelt und die Verwendung dieses Codes zu großen Anzeigeproblemen führen kann.

11voto

Tyler Punkte 352

Zusammenfassend habe ich 2 hier aufgeführte Ansätze in der Benutzer-Javascript-Programmierung (Opera 11.01) ausprobiert:

Ich empfehle daher den Arbeitsansatz für Opera-Benutzer JS-Benutzer. Im Gegensatz zu dem, was der Autor sagte:

Es funktioniert nicht mit Firefox oder Opera, sondern nur mit IE, Chrome und Safari.

Es funktioniert in Opera 11. Zumindest in Benutzer-JS-Skripten. Schade, dass ich die einzelnen Antworten nicht kommentieren oder hoch bewerten kann, das würde ich sofort tun. Wenn möglich, jemand mit höheren Privilegien tun Sie es bitte für mich.

0 Stimmen

Dies ist mein erster richtiger Kommentar. Ich habe vor 2 Tagen das Privileg erhalten, die Antwort, die ich oben erwähnt habe, hochzuvoten, also habe ich sie sofort hochgevotet. Vielen Dank an alle, die meinen schwachen Versuch zu helfen hochgevotet haben.

0 Stimmen

Vielen Dank an alle, die diese Antwort tatsächlich hochgestuft haben: Ich habe jetzt genug Privilegien, um normale Kommentare zu schreiben! Also nochmals vielen Dank.

10voto

pocheptsov Punkte 1904

Meine Erweiterung zu https://stackoverflow.com/a/15558082/80404 . Er erwartet einen Kommentar in der Form /*! any multiline comment */ wobei das Symbol ! verwendet wird, um das Entfernen durch Minification zu verhindern (zumindest für den YUI-Kompressor)

Function.prototype.extractComment = function() {
    var startComment = "/*!";
    var endComment = "*/";
    var str = this.toString();

    var start = str.indexOf(startComment);
    var end = str.lastIndexOf(endComment);

    return str.slice(start + startComment.length, -(str.length - end));
};

Ejemplo:

var tmpl = function() { /*!
 <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
    </ul>
 </div>
*/}.extractComment();

CodeJaeger.com

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.

Powered by:

X