Heim >Web-Frontend >js-Tutorial >String-Operationen in JavaScript
String-Operationen in JavaScript
1. Übersicht
Strings gibt es fast überall in JavaScript, wenn Sie Benutzereingabedaten verarbeiten, wenn Sie das DOM lesen oder festlegen, wenn Sie mit Objekteigenschaften arbeiten Kekse, und natürlich gibt es noch viel mehr…. Der Kernteil von JavaScript stellt eine Reihe von Eigenschaften und Methoden für gängige String-Operationen bereit, z. B. das Teilen von Strings, das Ändern der Groß-/Kleinschreibung von Strings, das Bearbeiten von Teilstrings usw.
Auch die meisten aktuellen Browser können von der Leistungsfähigkeit regulärer Ausdrücke profitieren, da sie eine große Anzahl von String-Manipulationsaufgaben erheblich vereinfachen, aber auch eine etwas steile Lernkurve erfordern. Hier stellen wir hauptsächlich einige Operationen an der Zeichenfolge selbst vor, die in zukünftigen Aufsätzen behandelt werden.
2. Erstellung einer Zeichenfolge
Es gibt mehrere Möglichkeiten, eine Zeichenfolge zu erstellen. Am einfachsten ist es, eine Reihe von Zeichen in Anführungszeichen zu setzen, die einer String-Variablen zugewiesen werden können.
var myStr = "Hallo, String!";
Sie können doppelte oder einfache Anführungszeichen verwenden, um die Zeichenfolge einzuschließen. Beachten Sie jedoch, dass das Anführungszeichenpaar, das die Zeichenfolge begrenzt, das sein muss gleich, nicht mischbar.
Eine Anweisung wie var myString = "Fluffy is a Pretty cat.'; ist illegal.
ermöglicht die Verwendung von zwei Arten von Anführungszeichen, wodurch bestimmte Vorgänge einfacher werden, z. B. die Verwendung einer Einbettung noch einer:
document.write("
Wir haben im obigen Skript mehrere Zeichenfolgen erstellt, aber im Wesentlichen handelt es sich nicht um echte Zeichenfolgenobjekte. Um genau zu sein, handelt es sich um Zeichenfolgenwerte. Um ein String-Objekt zu erstellen, können Sie die folgende Anweisung verwenden: var strObj = new String("Hello, String!");
Verwenden Sie den Operator typeof, um festzustellen, ob der Typ von myStr string ist, und Der Typ von strObj ist Objekt.
Wenn Sie die Länge der Zeichenfolge wissen möchten, verwenden Sie die Längeneigenschaft:
, um die Länge der Zeichenfolge zu ermitteln : string.charAt(index);
3. Spleißen von Strings
Problem:
Kombinieren Sie zwei oder mehrere Strings werden zu einem gespleißt großer String
Lösung:
Ganz einfach, verwenden Sie einfach ein „+“, um die beiden Strings zu „addieren“:
var longString = „One Stück " + "plus ein weiteres Stück.";
Um mehrere Zeichenfolgen zu einer Zeichenfolge zusammenzufassen, können Sie auch den Operator „+=" verwenden:
var result = "";
result += "Mein Name ist Anders"
result += " und mein Alter ist 25"
Um der Zeichenfolge ein Zeilenumbruchzeichen hinzuzufügen, müssen Sie das Escape-Zeichen „n“ verwenden:
var bestätigenString = „Sie haben keine Antwort auf die letzte Zeile eingegeben“ +
"question.nnFormular trotzdem senden?";
var bestätigenValue = bestätigen(confirmString);
Diese Methode kann jedoch nur in bestimmten Situationen verwendet werden Wenn dieser Text als HTML-Inhalt angezeigt wird, ist er ungültig. Verwenden Sie in diesem Fall „
“, um ihn zu ersetzen:
var htmlString = "Erste Zeile der Zeichenfolge.
Zweite Zeile der Zeichenfolge.";
document.write(htmlString );
Das String-Objekt stellt auch die Methode concat() bereit, die die gleiche Funktion wie „+“ ausführt:
string.concat( value1, value2, ...)
Allerdings ist die concat()-Methode offensichtlich nicht so intuitiv und prägnant wie „+“.
4. Zugriff auf Teilzeichenfolgen einer Zeichenfolge
Frage:
Erhalten Sie eine Kopie eines Teils einer Zeichenfolge.
Lösung:
Verwenden Sie die Methode substring() oder Slice() (NN4+, IE4+). Ihre spezifische Verwendung wird unten erläutert.
Der Prototyp von substring() ist: string.substring(from, to)
Der erste Parameter von gibt die Startposition des Teilstrings im Originalstring an (0-basierter Index); Der zweite Parameter to ist optional. Er gibt die Endposition der Teilzeichenfolge in der ursprünglichen Zeichenfolge an (0-basierter Index). Wenn er weggelassen wird, wird die Teilzeichenfolge an das Ende gesetzt Originalsaite.
Was passiert, wenn der Parameter von versehentlich größer wird als der Parameter bis? JavaScript passt die Start- und Endpositionen des Teilstrings automatisch an, d. h. substring() beginnt immer mit dem kleineren der beiden Parameter und endet mit dem größeren. Beachten Sie jedoch, dass das Zeichen an der Startposition enthalten ist, nicht jedoch das Zeichen an der Endposition.
var fullString = „Jeder Hund hat seinen Tag.“;
var section = fullString.substring(0, 4); // section is „Ever ".
section = fullString.substring(4, 0); // section ist auch „Ever“.
section = fullString.substring(1, 1); // section ist eine leere Zeichenfolge.
section = fullString.substring(-2, 4); // section ist „Ever“, dasselbe wie fullString.substring(0, 4);
Der Prototyp von Slice() ist: string.slice(start, end)
Der Parameter start stellt die Startposition des Teilstrings dar. Wenn es sich um eine negative Zahl handelt, kann er als Startposition verstanden werden Position von unten, zum Beispiel – 3 bedeutet, dass von der dritten Stelle von unten begonnen wird; der Parameter Ende stellt die Endposition dar, er kann aber auch eine negative Zahl sein und seine Bedeutung gibt auch das Ende der vorletzten Zahl an. Die Parameter von Slice() können negativ sein, daher ist es flexibler als Substring(), aber weniger tolerant. Wenn Start größer als Ende ist, wird ein leerer String zurückgegeben (Beispiel weggelassen).
Eine andere Methode ist substr(), ihr Prototyp ist: string.substr(start, length)
Aus dem Prototyp können wir die Bedeutung seiner Parameter ersehen, start stellt die Startposition dar, Länge gibt die Länge des Teilstrings an. Der JavaScript-Standard rät von der Verwendung dieser Methode ab.
5. String-Groß-/Kleinschreibung
Problem:
Auf Ihrer Seite befindet sich ein Textfeld zum Empfangen von Benutzereingabeinformationen, z. B. Stadt, und Sie werden es dann entsprechend verwenden Zu diesem Zeitpunkt wird natürlich ein Zeichenfolgenvergleich durchgeführt. Daher ist es am besten, die Fallkonvertierung durchzuführen, sodass Sie die Situation erst nach der Konvertierung berücksichtigen müssen Die Seite und dann werden diese Daten in einer Datenbank gespeichert, und die Datenbank akzeptiert zufällig nur Großbuchstaben. In diesen Fällen müssen wir alle eine Groß-/Kleinschreibung der Zeichenfolge in Betracht ziehen.
Lösung:
Verwenden Sie die Methoden toLowerCase() und toUpperCase():
var city = "ShanGHai";
city = city.toLowerCase(); // Stadt ist jetzt „shanghai“.
6. Bestimmen Sie, ob zwei Zeichenfolgen gleich sind
Frage:
Sie möchten beispielsweise den Eingabewert des Benutzers mit einer bekannten Zeichenfolge vergleichen
Lösung:
Konvertieren Sie zuerst alle Benutzereingabewerte in Großbuchstaben (oder Kleinbuchstaben) und dann den Zeilenvergleich :
var name = document.form1.txtUserName.value.toLowerCase();
if(name == "urname" )
{
// Anweisungen gehen hierher.
}
JavaScript verfügt über zwei Gleichheitsoperatoren. Einer ist vollständig abwärtskompatibel, Standard „==". Wenn die beiden Operandentypen inkonsistent sind, wird irgendwann automatisch eine Typkonvertierung für den Operanden durchgeführt:
var strA = "i love you!";
var strB = new String("i love you!");
Diese Zwei Variablen enthalten die gleiche Zeichenfolge, haben jedoch unterschiedliche Datentypen. Bei Verwendung des Operators „==“ versucht JavaScript unter bestimmten Umständen, die beiden Variablen zu erkennen . Der folgende Ausdruck ergibt also „true“: strA == strB.
Der zweite Operator ist der „strenge“ „===", der bei der Auswertung nicht so nachsichtig ist und keine Typkonvertierung durchführt. Der Ausdruck strA === strB ergibt also „falsch“, obwohl beide Variablen denselben Wert haben.
Manchmal erfordert die Logik des Codes, dass Sie feststellen, ob zwei Werte nicht gleich sind: „!=" und strict „!==" Ihre Beziehung ist ähnlich zu „==" und „===".
Diskussion:
„==" und „!=" werden ihr Bestes geben, um bei der Auswertung eine Werteübereinstimmung zu finden, aber Sie möchten möglicherweise trotzdem vor dem Vergleich einen expliziten Typ erstellen. In „help“ umwandeln „Sie machen ihren Job. Wenn Sie beispielsweise feststellen möchten, ob der Eingabewert (Zeichenfolge) eines Benutzers einer Zahl entspricht, können Sie sich von „==" bei der Typkonvertierung helfen lassen:
if(document.form1.txtAge. value == someNumericVar ) { ... }
Sie können auch vorab konvertieren:
if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }
Wenn Sie eher mit stark typisierten Programmiersprachen (wie C#, Java usw.) vertraut sind, können Sie Ihre Gewohnheit (Typkonvertierung) hier fortsetzen, was auch die Lesbarkeit des Programms verbessert .
Eine Sache, auf die Sie achten müssen, sind die regionalen Einstellungen des Computers. Wenn Sie zum Vergleichen von Zeichenfolgen „<“ und „>“ verwenden, vergleicht JavaScript sie als Unicode, aber offensichtlich lesen die Leute, die im Internet surfen, den Text nicht als Unicode :) Zum Beispiel auf Spanisch: „ ch“ wird als Zeichen zwischen „c“ und „d“ einsortiert. localeCompare() bietet eine Möglichkeit, die Zeichensortierung des Standardgebietsschemas zu verwenden.
var strings; // Zu sortierendes String-Array, vorausgesetzt, es wurde initialisiert
strings.sort(function(a,b) { return a.localeCompare(b) }); // Rufen Sie die Methode sort() auf, um
7. Suche nach ZeichenfolgenFrage: Bestimmen Sie, ob eine Zeichenfolge eine andere Zeichenfolge enthält. Lösung: Verwenden Sie die indexOf()-Methode der Zeichenfolge: strObj.indexOf(subString[, startIndex]) strObj soll beurteilt werden Die Zeichenfolge, subString ist die Teilzeichenfolge, die in strObj durchsucht werden soll, startIndex ist optional und gibt die Startposition der Suche an (0-basierter Index). Wenn startIndex weggelassen wird, wird ab dem Anfang von strObj gesucht, wenn startIndex kleiner als 0 ist. Dann beginnt es bei 0. Wenn startIndex größer als der maximale Index ist, beginnt es mit dem maximalen Index. indexOf() gibt die Startposition von subString in strObj zurück, wenn nicht gefunden, wird -1 zurückgegeben. In einem Skript können Sie es so verwenden: if(largeString.indexOf(shortString) != -1) { / / Wenn es enthält, verarbeiten Sie es entsprechend; wie folgt: Diese Funktion zeigt, wie man ermittelt, wie oft eine Zeichenfolge eine andere Zeichenfolge enthält: function countInstances(mainStr, subStr) { var count = 0; var offset = 0; do offset = mainStr .indexOf(subStr, offset ); offset += subStr.length; } }while(offset != -1) return count; } Das String-Objekt verfügt über eine Methode, die indexOf(), lastIndexOf() entspricht: strObj.lastIndexOf(substring[, startindex ]) strObj ist der zu beurteilende String, subString ist der in strObj zu durchsuchende Teilstring, startIndex ist optional und gibt die Startposition der Suche an (0-basierter Index). Wenn startIndex weggelassen wird, wird gesucht das Ende von strObj, wenn startIndex kleiner als 0 ist, dann beginnt die Suche bei 0. Wenn startIndex größer als der maximale Index ist, beginnt die Suche beim maximalen Index. Diese Methode sucht von rechts nach links und gibt die letzte Position von subString in strObj zurück. Wenn sie nicht gefunden wird, gibt sie -1 zurück. 8. Konvertieren zwischen Unicode-Werten und Zeichen in Zeichenfolgen Frage: Ermitteln Sie den Unicode-Codierungswert eines Zeichens und umgekehrt. Lösung: Um die Unicode-Kodierung eines Zeichens zu erhalten, können Sie die Methode string.charCodeAt(index) verwenden, die wie folgt definiert ist: strObj.charCodeAt( index) Index ist die Position des angegebenen Zeichens im strObj-Objekt (0-basierter Index), und der Rückgabewert ist eine 16-Bit-Ganzzahl zwischen 0 und 65535. Zum Beispiel: var strObj = "ABCDEFG"; var code = strObj.charCodeAt(2); // Unicode-Wert des Zeichens „C“ ist 67 Wenn an dem durch index angegebenen Index kein Zeichen vorhanden ist, ist der Rückgabewert NaN. Um die Unicode-Codierung in ein Zeichen zu konvertieren, verwenden Sie die Methode String.fromCharCode(). Beachten Sie, dass es sich um eine „statische Methode“ des String-Objekts handelt, was bedeutet, dass sie nicht benötigt wird muss vor der Verwendung erstellt werden. String-Beispiel: String.fromCharCode(c1, c2, ...) Es akzeptiert 0 oder mehr Ganzzahlen und gibt einen String zurück, der die angegebenen Parameter enthält. zum Beispiel: var str = String.fromCharCode(72, 101, 108, 108, 111); // str == "Hallo"
Diskussion: Unicode enthält Zeichensätze für viele geschriebene Sprachen der Welt, aber nur weil Unicode ein Zeichen enthält, können Sie nicht erwarten, dass dieses Zeichen in einem Warndialogfeld, Textfeld usw. ordnungsgemäß dargestellt wird Seite zeigen. Wenn der Zeichensatz nicht verfügbar ist, wird er auf der Seite als Fragezeichen oder anderes Symbol angezeigt. Ein typischer nordamerikanischer Computer kann keine chinesischen Zeichen auf dem Bildschirm anzeigen, es sei denn, der chinesische Zeichensatz und seine Schriftarten sind installiert.