One place for hosting & domains

      Teilen

      So indizieren, teilen und bearbeiten Sie Zeichenfolgen in JavaScript


      Einführung

      Eine Zeichenfolge ist eine Sequenz von einem oder mehreren Zeichen, die aus Buchstaben, Zahlen oder Symbolen bestehen kann. Auf jedes Zeichen in einer JavaScript-Zeichenfolge kann über eine Indexnummer zugegriffen werden, und allen Zeichenfolgen stehen Methoden und Eigenschaften zur Verfügung.

      In diesem Tutorial lernen wir den Unterschied zwischen Zeichenfolgenprimitiven und dem Zeichenfolgenobjekt kennen, wie Zeichenfolgen indiziert werden, wie auf Zeichen in einer Zeichenfolge zugegriffen wird und welche allgemeinen Eigenschaften und Methoden für Zeichenfolgen verwendet werden.

      Zeichenfolgenprimitive und Zeichenfolgenobjekte

      Zuerst werden wir die beiden Arten von Zeichenfolgen klären. JavaScript unterscheidet zwischen der Zeichenfolgenprimitive, einem unveränderlichen Datentyp und dem Zeichenfolgenobjekt.

      Um den Unterschied zwischen den beiden zu testen, initialisieren wir eine Zeichenfolgenprimitive und ein Zeichenfolgenobjekt.

      // Initializing a new string primitive
      const stringPrimitive="A new string."
      
      // Initializing a new String object
      const stringObject = new String('A new string.')
      

      Wir können den Operator typeof verwenden, um den Typ eines Werts zu bestimmen. Im ersten Beispiel haben wir einer Variable einfach eine Zeichenfolge zugewiesen.

      typeof stringPrimitive
      

      Output

      string

      Im zweiten Beispiel haben wir eine neue Zeichenfolge() verwendet, um ein Zeichenfolgenobjekt zu erstellen und einer Variable zuzuweisen.

      typeof stringObject
      

      Output

      object

      Meistens erstellen Sie Zeichenfolgenprimitive. JavaScript kann auf die integrierten Eigenschaften und Methoden des Zeichenfolgen“objekt-Wrappers zugreifen und diese verwenden, ohne die von Ihnen erstellte Zeichenfolgenprimitive tatsächlich in ein Objekt zu ändern.

      Während dieses Konzepts zunächst etwas anspruchsvoll ist, sollten Sie sich der Unterscheidung zwischen Primitive und Objekt bewusst sein. Im Wesentlichen stehen allen Zeichenfolgen Methoden und Eigenschaften zur Verfügung. Im Hintergrund führt JavaScript bei jedem Aufruf einer Methode oder Eigenschaft eine Konvertierung in ein Objekt und zurück in eine Primitive durch.

      Wie Zeichenfolgen indiziert sind

      Jedes der Zeichen in einer Zeichenfolge entspricht einer Indexnummer, beginnend mit 0.

      Zur Demonstration erstellen wir eine Zeichenfolge mit dem Wert How are you?.

      Howareyou?
      01234567891011

      Das erste Zeichen in der Zeichenfolge ist H, was dem Index 0 entspricht. Das letzte Zeichen ist ?, was 11 entspricht. Die Leerzeichen haben auch einen Index bei 3 und 7.

      Wenn wir auf jedes Zeichen in einer Zeichenfolge zugreifen können, haben wir verschiedene Möglichkeiten, mit Zeichenfolgen zu arbeiten und diese zu bearbeiten.

      Zugriff auf Zeichen

      Wir zeigen Ihnen, wie Sie auf Zeichen und Indizes mit der Zeichenfolge How are you? zugreifen können.

      'How are you?'
      
      

      Mit der quadratischen Klammernotation können wir auf jedes Zeichen in der Zeichenfolge zugreifen.

      'How are you?'[5]
      

      Output

      r

      Wir können auch die charAt()-Methode verwenden, um das Zeichen mit der Indexnummer als Parameter zurückzugeben.

      'How are you?'.charAt(5)
      

      Output

      r

      Alternativ können wir indexOf() verwenden, um die Indexnummer durch die erste Instanz eines Zeichens zurückzugeben.

      'How are you?'.indexOf('o')
      

      Output

      1

      Obwohl „o“ zweimal in der Zeichenfolge How are you? erscheint, erhält indexOf() die erste Instanz.

      lastIndexOf() wird verwendet, um die letzte Instanz zu finden.

      'How are you?'.lastIndexOf('o')
      

      Output

      9

      Für beide Methoden können Sie auch nach mehreren Zeichen in der Zeichenfolge suchen. Sie gibt die Indexnummer des ersten Zeichens in der Instanz zurück.

      'How are you?'.indexOf('are')
      

      Output

      4

      Die slice()-Methode hingegen gibt die Zeichen zwischen zwei Indexnummern zurück. Der erste Parameter ist die Startindexnummer und der zweite Parameter ist die Indexnummer, an der sie enden soll.

      'How are you?'.slice(8, 11)
      

      Output

      you

      Beachten Sie, dass 11 ? ist, aber ? ist nicht Teil der zurückgegebenen Ausgabe. slice() gibt zurück, was zwischen dem letzten Parameter liegt, schließt ihn jedoch nicht ein.

      Wenn ein zweiter Parameter nicht enthalten ist, gibt slice() alles vom Parameter bis zum Ende der Zeichenfolge zurück.

      'How are you?'.slice(8)
      

      Output

      you?

      Zusammenfassend helfen charAt() und slice() dabei, Zeichenfolgenwerte basierend auf Indexnummern zurückzugeben, und indexOf() und lastIndexOf() machen das Gegenteil und geben Indexnummern basierend auf den angegebenen Zeichenfolgen zurück.

      Die Länge einer Zeichenfolge finden

      Mit der Eigenschaft length können wir die Anzahl der Zeichen in einer Zeichenfolge zurückgeben.

      'How are you?'.length
      

      Output

      12

      Denken Sie daran, dass die Eigenschaft length die tatsächliche Anzahl von Zeichen zurückgibt, die mit 1 beginnen, was 12 ergibt, und nicht die endgültige Indexnummer, die bei 0 beginnt und bei 11 endet.

      Konvertieren in Groß- oder Kleinschreibung

      Die beiden integrierten Methoden toUpperCase() und toLowerCase() sind hilfreiche Möglichkeiten, um Text zu formatieren und Textvergleiche in JavaScript zu erstellen.

      toUpperCase() konvertiert alle Zeichen in Großbuchstaben.

      'How are you?'.toUpperCase()
      

      Output

      HOW ARE YOU?

      toLowerCase() konvertiert alle Zeichen in Kleinbuchstaben.

      'How are you?'.toLowerCase()
      

      Output

      how are you?

      Diese beiden Formatierungsmethoden nehmen keine zusätzlichen Parameter.

      Es lohnt sich, zu beachten, dass diese Methoden die ursprüngliche Zeichenfolge nicht ändern.

      Zeichenfolgen teilen

      JavaScript bietet eine sehr nützliche Methode, um eine Zeichenfolge durch ein Zeichen zu teilen und aus den Abschnitten eine neue Anordnung zu erstellen. Wir verwenden die split()-Methode, um die Anordnung durch ein Leerzeichen zu trennen, das durch „“ dargestellt ist.

      const originalString = 'How are you?'
      
      // Split string by whitespace character
      const splitString = originalString.split(' ')
      
      console.log(splitString)
      

      Output

      [ 'How', 'are', 'you?' ]

      Nachdem wir eine neue Anordnung in der splitString-Variablen haben, können wir auf jeden Abschnitt mit einer Indexnummer zugreifen.

      splitString[1]
      

      Output

      are

      Wenn ein leerer Parameter angegeben ist, erstellt split() eine durch Komma getrennte Anordnung mit jedem Zeichen in der Zeichenfolge.

      Durch die Trennung von Zeichenfolgen können Sie bestimmen, wie viele Wörter sich in einer Satz befinden und die Methode als Möglichkeit verwenden, um beispielsweise die Vornamen und die Nachnamen von Leuten zu bestimmen.

      Leerzeichen kürzen

      Die JavaScript-Methode trim() entfernt Leerzeichen an beiden Enden einer Zeichenfolge, jedoch nicht irgendwo dazwischen. Leerzeichen können Tabulatoren oder Leerzeichen sein.

      const tooMuchWhitespace="     How are you?     "
      
      const trimmed = tooMuchWhitespace.trim()
      
      console.log(trimmed)
      

      Output

      How are you?

      Die trim()-Methode ist eine einfache Möglichkeit, die gemeinsame Aufgabe auszuführen, um überschüssige Leerzeichen zu entfernen.

      Zeichenfolgenwerte suchen und ersetzen

      Wir können eine Zeichenfolge nach einem Wert durchsuchen und ihn mithilfe der replace() -Methode durch einen neuen Wert ersetzen. Der erste Parameter ist der zu findende Wert und der zweite Parameter ist der Wert, der ihn ersetzen kann.

      const originalString = 'How are you?'
      
      // Replace the first instance of "How" with "Where"
      const newString = originalString.replace('How', 'Where')
      
      console.log(newString)
      

      Output

      Where are you?

      Wir können nicht nur einen Wert durch einen anderen Zeichenfolgenwert ersetzen, sondern auch reguläre Ausdrücke verwenden, um replace() leistungsfähiger zu machen. Zum Beispiel wirkt sich replace() nur auf den ersten Wert aus, aber wir können das Flag g (global) verwenden, um alle Instanzen eines Werts abzufangen, und das Flag i (ohne Berücksichtigung der Groß- und Kleinschreibung), um Groß- und Kleinschreibung zu ignorieren.

      const originalString =
        "Javascript is a programming language. I'm learning javascript."
      
      // Search string for "javascript" and replace with "JavaScript"
      const newString = originalString.replace(/javascript/gi, 'JavaScript')
      
      console.log(newString)
      

      Output

      JavaScript is a programming language. I'm learning JavaScript.

      Dies ist eine sehr häufige Aufgabe, die reguläre Ausdrücke verwendet. Besuchen Sie Regexr, um weitere Beispiele für RegEx zu üben.

      Zusammenfassung

      Zeichenfolgen sind einer der am häufigsten verwendeten Datentypen, und es gibt eine Menge, was wir mit ihnen tun können.

      In diesem Tutorial haben wir den Unterschied zwischen der Zeichenfolgenprimitive und dem Zeichenfolgenobjekt kennengelernt, wie Zeichenfolgen indiziert werden und wie die integrierten Methoden und Eigenschaften von Zeichenfolgen verwendet werden, um auf Zeichen zuzugreifen, Text zu formatieren und Werte zu suchen und zu ersetzen.

      Eine allgemeinere Übersicht über Zeichenfolgen finden Sie im Lernprogramm „So arbeiten Sie mit Zeichenfolgen in JavaScript“.



      Source link

      Aufnehmen und Teilen von Terminalsitzungen mit Terminalizer unter Ubuntu 18.04


      Der Autor wählte die Electronic Frontier Foundation, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      Terminalizer ist eine Terminal-Rekorderanwendung, mit der Sie Ihre Terminalsitzung in Echtzeit aufnehmen und dann zu einem späteren Zeitpunkt wiedergeben können. Sie funktioniert genauso wie ein Desktop-Bildschirmrekorder, läuft aber stattdessen in Ihrem Terminal.

      Die Aufzeichnung Ihrer Terminalsitzung ist nützlich, wenn Sie eine bestimmte Aktivität erneut überprüfen oder einen besonders kniffligen Fehler beheben möchten. Die mit Terminalizer erstellten Aufnahmen können auch als animierte GIFs exportiert werden, was Ihnen eine gute Möglichkeit bietet, diese online zu teilen oder dem Marketingmaterial Ihrer Software hinzuzufügen.

      In diesem Tutorial installieren und verwenden Sie Terminalizer zur Aufnahme und Wiedergabe von Terminalsitzungen, zur benutzerdefinierten Anpassung Ihrer Aufnahmen und zum anschließenden Exportieren, um die Aufnahmen online zu teilen.

      Voraussetzungen

      Um diesem Tutorial zu folgen, benötigen Sie:

      Wenn Sie Ihre Aufnahmen online teilen möchten, benötigen Sie außerdem:

      Sobald Sie diese zur Verfügung haben, melden Sie sich zunächst als Nicht-Root-Benutzer auf Ihrem Server an.

      Schritt 1 – Installieren von Terminalizer

      In diesem Schritt laden Sie Terminalizer herunter und installieren es auf Ihrem System. Terminalizer ist mit Node.js geschrieben und kann mit dem npm-Paketmanger installiert werden.

      Um Terminalizer global auf Ihrem System zu installieren, führen Sie den folgenden Befehl aus:

      • sudo npm install --global --allow-root --unsafe-perm=true terminalizer

      Terminalizer verwendet das Electron-Anwendungsframework, um aufgenommene Terminalsitzungen in GIF-Format zu exportieren. Für die globale Installation von Electron auf Ihrem System ist das Befehlsargument --unsafe-perms=true erforderlich.

      Sobald Terminalizer installiert ist, sehen Sie eine Ausgabe ähnlich wie die folgende:

      Output

      . . . /usr/local/lib └── terminalizer@0.7.1

      Als Nächstes überprüfen Sie die Installation von Terminalizer, indem Sie Folgendes ausführen:

      Sie erhalten eine Ausgabe, die der Folgenden ähnelt:

      Output

      0.7.1

      Erstellen Sie zum Schluss eine standardmäßige Terminalizer-Konfigurationsdatei, die Sie zur erweiterten Anpassung des Terminalizers nutzen können (Einzelheiten hierzu in Schritt 4):

      Sie erhalten eine Ausgabe, die der Folgenden ähnelt:

      Output

      The global config directory is created at /home/user/.terminalizer

      Nachdem Sie Terminalizer nun installiert haben, können Sie Ihre erste Terminalaufnahme erstellen.

      Schritt 2 – Aufnahme und Wiedergabe einer Terminalsitzung

      In diesem Schritt nehmen Sie eine Terminalsitzung auf und geben diese wieder.

      Zuerst erstellen Sie eine neue Terminalizer-Aufnahme mit einem Namen Ihrer Wahl:

      • terminalizer record your-recording

      Die darauf folgende Ausgabe zeigt an, dass die Aufnahme gestartet wurde:

      Output

      The recording session has started Press Ctrl+D to exit and save the recording

      Sie können nun in Ihrem Terminal alles ausführen, was Sie möchten. Jede Tasteneingabe und jeder Befehl wird von Terminalizer in Echtzeit aufgezeichnet.

      Beispiel:

      • pwd
      • date
      • whoami
      • echo "Hello, world!"

      Wenn Sie die Aufnahme stoppen möchten, drücken Sie STRG+D. Nun speichert Terminalizer die Aufnahme in die angegebene Datei im Format YAML, z. B. your-recording.yml.

      Output

      Successfully Recorded The recording data is saved into the file: /home/user/your-recording.yml

      Sie können von Terminalizer aufgefordert werden, Ihre Aufnahme online zu teilen. Drücken Sie einfach STRG+C, um dies vorerst abzubrechen, da Sie die Terminalaufnahme zunächst lokal wiedergeben können.

      Als Nächstes geben Sie die aufgenommene Terminalsitzung mit dem folgenden Befehl wieder:

      • terminalizer play your-recording

      Dadurch wird die aufgenommene Sitzung in Echtzeit in Ihrem Terminal wiedergegeben:

      Output

      user@droplet:~$ pwd /home/user user@droplet:~$ date Sun Mar 8 14:55:36 UTC 2020 user@droplet:~$ whoami user user@droplet:~$ echo "Hello, world!" Hello, world! user@droplet:~$ logout

      Sie können die Wiedergabegeschwindigkeit Ihrer Aufnahme auch mit der Option --speed-factor anpassen.

      Folgendes z. B. gibt Ihre Aufnahme halb so schnell wieder (halbe Geschwindigkeit):

      • terminalizer play your-recording --speed-factor 2

      Alternativ können Sie Ihre Aufnahme doppelt so schnell (doppelte Geschwindigkeit) wiedergeben:

      • terminalizer play your-recording --speed-factor 0.5

      Sie haben eine Terminalsitzung aufgenommen und wiedergegeben. Als Nächstes können Sie eine aufgenommene Terminalsitzung online teilen.

      Schritt 3 – Teilen einer aufgenommenen Terminalsitzung

      In diesem Schritt teilen Sie Ihre aufgenommene Terminalsitzung online auf der Webseite Terminalizer Explore.

      Wählen Sie zuerst die aufgenommene Sitzung aus, die Sie teilen möchten:

      • terminalizer share your-recording

      Sie werden dann aufgefordert, einige grundlegende Metadaten über Ihre Aufnahme bereitzustellen, wie z. B. den Titel und die Beschreibung:

      Output

      Please enter some details about your recording ? Title Title of Your Recording ? Description Description of Your Recording ? Tags such as git,bash,game Comma-separated Tags for Your Recording

      Warnung: Terminalizer-Aufnahmen werden standardmäßig öffentlich gemeinsam genutzt. Achten Sie also darauf, dass es in Ihrer Terminalaufnahme keine persönlichen Daten gibt, die Sie nicht teilen möchten.

      Wenn Sie zum ersten Mal eine aufgenommene Sitzung mit Terminalizer teilen, müssen Sie Ihren Terminalizer-Account verlinken. Terminalizer wird, falls erforderlich, einen Verifizierungslink anzeigen:

      Output

      Open the following link in your browser and login into your account https://terminalizer.com/token?token=your-token When you do it, press any key to continue

      Warnung: Stellen Sie sicher, dass Sie Ihr Terminalizer-Token privat halten, da jeder, der es besitzt, auf Ihren Terminalizer-Account zugreifen kann.

      Sobald Sie den Link in Ihrem Webbrowser geöffnet und sich in Ihren Terminalizer-Account eingeloggt haben, drücken Sie eine beliebige Taste, um fortzufahren.

      Terminalizer lädt Ihre Aufnahme nun hoch und stellt Ihnen den Link zum Ansehen zur Verfügung:

      Output

      Successfully Uploaded The recording is available on the link: https://terminalizer.com/view/your-recording-id

      Durch das Öffnen des Links in einem Desktop-Webbrowser können Sie Ihre geteilte Aufnahme ansehen:

      Screenshot der Terminalizer-Website mit dem Beispiel einer geteilten Terminalaufnahme

      Sie haben eine aufgenommene Terminalsitzung auf der Terminalizer-Website geteilt und in Ihrem Webbrowser angesehen.

      Schritt 4 – Einstellen der erweiterten Terminalizer-Konfiguration

      Nachdem Sie sich nun mit Terminalizer vertraut gemacht haben, können Sie beginnen, einige der erweiterten Anpassungsoptionen zu testen. Sie haben z. B. die Möglichkeit, die Farben und den Stil des Displays anzupassen.

      Jede Aufnahme erhält die Standardkonfiguration aus der globalen Terminalizer-Konfigurationsdatei, die sich unter ~/.terminalizer/config.yml befindet. Das bedeutet, dass Sie die Konfiguration für einzelne Aufnahmen direkt bearbeiten können, indem Sie die Aufnahmedatei bearbeiten (z. B. your-recording.yml). Alternativ können Sie die globale Konfiguration bearbeiten, was sich auf alle neuen Aufnahmen auswirkt.

      In diesem Beispiel bearbeiten Sie die globale Konfigurationsdatei, aber die gleiche Anleitung gilt auch für Konfigurationsdateien individueller Aufnahmen.

      Öffnen Sie zuerst die globale Terminalizer-Konfiguration in Ihrem Texteditor, z. B. nano:

      • nano ~/.terminalizer/config.yml

      Jede der verfügbaren Konfigurationsoptionen innerhalb der Datei ist mit einem erklärenden Kommentar versehen.

      Es gibt verschiedene gängige Konfigurationsoptionen, die Sie Ihren Wünschen anpassen können:

      • cols: Legen Sie die genaue Anzahl der für Ihre Aufnahme verwendeten Terminalspalten fest.
      • rows: Legen Sie die genaue Anzahl der für Ihre Aufnahme verwendeten Terminalreihen fest.
      • frameDelay: Heben Sie die Verzögerung zwischen jeder Tastatureingabe während der Wiedergabe auf.
      • maxIdleTime: Geben Sie eine maximale Zeit zwischen den Tastatureingaben während der Wiedergabe an.
      • cursorStyle: Legen Sie den standardmäßigen Cursor-Stil des Terminals auf block, bar oder underline fest.
      • fontFamily: Legen Sie eine Liste der bevorzugten Wiedergabeschriftarten in der bevorzugten Reihenfolge fest.
      • theme: Stellen Sie das Farbschema der Wiedergabe ein, z. B. für ein Schwarz-auf-Weiß-Terminal, etc.

      Beispielsweise können Sie ein Weiß-auf-Schwarz-Terminaldisplay erhalten, indem Sie die folgenden Optionen konfigurieren:

      config.yml

      . . .
      theme:
        background: "white"
        foreground: "black"
      . . .
      

      Sie erhalten ein Ergebnis, das dem Folgenden ähnelt:

      Screenshot der Terminalizer-Website mit dem Beispiel einer Aufnahme in einem Schwarz-auf-Weiß-Thema

      Sie können den Cursor-Stil anpassen, um die Aufnahme leichter verständlich zu machen, z. B. indem Sie den standardmäßigen Cursor im Block-Stil mit einem unterstrichenen tauschen:

      config.yml

      . . .
      cursorStyle: underline
      . . .
      

      Sie erhalten ein Ergebnis, das dem Folgenden ähnelt:

      Screenshot der Terminalizer-Website mit dem Beispiel einer Aufnahme mit einem Cursor im Unterstrich-Stil

      Sobald Sie alle gewünschten Änderungen vorgenommen haben, speichern Sie die Datei und gehen zu Ihrem Terminal zurück.

      Wenn Sie die globale Terminalizer-Konfiguration bearbeitet haben, gelten diese Einstellungen für alle neuen Aufnahmen, die Sie zukünftig erstellen. Wenn Sie eine individuelle Aufnahmekonfiguration bearbeiten, wendet Terminalizer die Änderungen sofort auf die jeweilige Aufnahme an.

      Beachten Sie, dass der benutzerdefinierte Wiedergabestil nur für geteilte Aufnahmesitzungen gilt. Die direkte Wiedergabe in Ihrem Terminal verwendet immer Ihre standarmäßigen Terminalstile und Farbschemen.

      In diesem letzten Schritt haben Sie einige der erweiterten Konfigurationsoptionen von Terminalizer getestet.

      Zusammenfassung

      In diesem Artikel haben Sie Terminalizer zum Aufnehmen und Teilen einer Terminalsitzung verwendet. Sie verfügen nun über das erforderliche Wissen, um aufgenommene Demos Ihrer Software zu erstellen, die Sie für Marketingmaterial verwenden können, oder um Befehlszeilenkniffe mit Ihren Freunden zu teilen.

      Wenn Sie Terminalizer-Aufnahmen in GIF-Format rendern und exportieren möchten, können Sie Terminalizer auf einem Rechner mit einer grafischen Benutzeroberfläche/Desktop installieren und die integrierten Rendering-Funktionen verwenden:

      Sie können auch die Terminalizer-Website besuchen, um von anderen Benutzern aufgenommene, geteilte Terminalsitzungen zu sehen:



      Source link