JavaScript repräsentiert kein einzelnes Zeichen, nur einen String -String -Typ, und der Zeichentyp entspricht einer Zeichenfolge, die nur ein Zeichen enthält.
String String ist ein grundlegender Datentyp von JavaScript. Gleichzeitig unterstützt JavaScript auch String -Objekte, ein Wrapper -Objekt mit Originalwerten. JavaScript wandelt bei Bedarf automatisch zwischen der ursprünglichen Form und der Objektform um. In diesem Artikel wird das ursprüngliche Zeichenfolgentyp und das String -Wrapper -Objekt vorgestellt
Definition
Der String-Typ ist eine Folge von Zeichen, die aus 16-Bit-Unicode-Zeichen bestehen, die in Zitaten eingeschlossen sind.
Stringstypen werden häufig zur Darstellung von Textdaten verwendet, und zu diesem Zeitpunkt wird jedes Element in der Zeichenfolge als Codepunkt betrachtet. Es wird angenommen, dass jedes Element eine Position in dieser Sequenz einnimmt und diese Positionen mit nicht negativen Werten indiziert. Der erste Charakter beginnt an Position 0, der zweite Charakter befindet sich an Position 1 und so weiter
Die Länge der Zeichenfolge ist die Anzahl der Elemente (z. B. ein 16-Bit-Wert). Die leere Zeichenfolge hat keine Länge ohne
Unicode -Codierung
Alle Zeichen können in Form von '/uxxxx' geschrieben werden, wobei XXXX die Unicode -Codierung des Zeichens darstellt. Zum Beispiel repräsentiert /u00a9 das Urheberrechtssymbol
var s = '/u00a9'; s // "©"
Wenn eine Zeichenfolge tatsächliche Textdaten enthält, wird jedes Element als separate UTF-16-Einheit angesehen. Jedes Zeichen wird in 16-Bit (d. H. 2 Bytes) UTF-16-Format im JavaScript gespeichert
Aber UTF-16 hat zwei Längen: Für Zeichen zwischen U+0000 und U+FFFF beträgt die Länge 16 Bit (d. H. 2 Bytes); Für Zeichen zwischen U+10000 und U+10FFFF beträgt die Länge 32 Bit (d. H. 4 Bytes), und die ersten beiden Bytes liegen zwischen 0xD800 und 0xDBFF, und die letzten beiden Bytes liegen zwischen 0xdc00 und 0xDffff, und die letzten beiden Bytes liegen zwischen 0xdc00 und 0xdffff.
Zum Beispiel wird das Zeichen "?", das U+1D306 entspricht, als UTF-16 geschrieben, das 0xD834 0xDF06 ist. Der Browser erkennt diese vier Bytes korrekt als ein Zeichen, aber die Charakterlänge in JavaScript wird immer auf 16 Bit befestigt, und diese vier Bytes werden als zwei Zeichen behandelt.
var s = '/ud834/udf06'; s // "?" s.länge // 2
Für 4-Byte-Unicode-Zeichen von u+10000 bis u+10ffff wird JavaScript immer als zwei Zeichen behandelt (das Zeichenlängenattribut ist 2).
Anführungszeichen
Die String -Zeichenfolge wird durch Doppelzitate (") oder einzelne Zitate (') deklariert. Java deklariert Zeichenfolgen mit Doppelzitaten und Zeichen mit einzelnen Zitaten. Da ECMascript keinen Zeichentyp hat, kann eine dieser beiden Notationen verwendet werden, aber die linken und rechten Zitate müssen übereinstimmen.
// korrekt var scolor1 = "rot"; var scolor2 = 'rot'; // Fehler var scolor1 = "rot '; var scolor2 =' rot";
Eine durch einzelne Zitate begrenzte Zeichenfolge kann doppelte Zitate enthalten, und eine durch doppelte Anführungszeichen abgenommene Zeichenfolge kann auch einzelne Zitate enthalten.
'key = "value"' "Es ist eine lange Reise"
Der JavaScript -Code kann mit Zeichenfolgen des HTML -Codes gemischt werden, und HTML -Code wird auch mit JavaScript -Code gemischt. Daher ist es am besten, jeweils separate Zitatstile in JavaScript und HTML -Code zu verwenden
Einzelne Zitate werden verwendet, um Zeichenfolgen in JavaScript darzustellen. Doppelzitate werden verwendet, um Zeichenfolgen in HTML -Event -Handlern darzustellen
<button onclick = "alert ('danke')"> klick mich </button>Backslash
Wenn Sie einzelne Zitate in einer einzelnen Zitat abgrenzten String oder doppelte Zitate in einer doppelten Zitat abgrenzten Zeichenfolge verwenden möchten, müssen Sie einen Backslash verwenden (/)
Gemeinsame Situationen sind, dass die Apostroph- und einzelne Zitate der englischen Abkürzung und des Besitzschreibens das gleiche Zeichen sind, sodass Sie einen Backslash (/) verwenden müssen, um dem Apostroph zu entkommen.
"Würden Sie dieses Buch nicht bevorzugen?" // "Würdest du dieses Buch nicht bevorzugen?" 'Hat sie/' Hallo/'gesagt?' // "Hat sie" Hallo "gesagt?" "Hat sie gesagt/" Hallo/"? // "Hat sie" Hallo "gesagt?"
Multi-Line-Zeichen
Standardmäßig können Zeichenfolgen nur in einer Zeile geschrieben werden, und wenn sie in mehrere Zeilen unterteilt sind, melden sie einen Fehler.
// Ein Fehler ohne SyntaxEerror: Ungültiges oder unerwartetes Token
'A
B
C';
In ECMascript3 müssen Zeichenfolgen in einer Zeile geschrieben sein
In ECMascript5 können Zeichenfolgen in Linien aufgeteilt werden. Jede Zeile muss mit einem Backslash enden (/)
Wenn Sie eine neue Zeile in einer String -direkten Menge starten möchten, können Sie Escape -Zeichen /n verwenden
// "onelongline" 'eins/long/line'/*"twolines"*/'zwei/nlines' '
Flucht Charaktere
In JavaScript -Zeichenfolgen haben Backslashes (/) besondere Verwendungen. Das Hinzufügen eines Charakters nach dem Backslash -Symbol repräsentiert ihre wörtlichen Bedeutungen nicht. Sie werden verwendet, um einige Sonderzeichen zu repräsentieren, die es Escape -Charaktere bezeichnen
/0 leere Bytes
/N
/ttable
/b Raum
/r eingeben
/f Futterpapier
// Slash
/'Einzelne Zitate
/"Doppelzitate
/xnn repräsentiert ein Zeichen in hexadezimaler nn (n is 0-f), wie z. B. /x41 "a" darstellt
/unnn in hexadezimal nnnn repräsentiert ein Unicode-Zeichen (n ist 0-f), wie z. B. /u03a3 das griechische Zeichen ε darstellt
Wenn vor einem nicht speziell
'/a' // "a"
Wenn die Zeichenfolge einen Backslash enthalten muss, muss ein weiterer Backslash vor dem Backslash hinzugefügt werden, um sich selbst zu entkommen
"Prev // Weiter" // "prev / Weiter"
Merkmale
Saiten in JavaScript sind unveränderlich. Sobald eine Zeichenfolge erstellt wurde, kann sie niemals geändert werden. Um die von einer Variablen gespeicherte Zeichenfolge zu ändern, zerstören Sie zuerst die ursprüngliche Zeichenfolge und füllen Sie dann die Variable mit einer anderen Zeichenfolge, die den neuen Wert enthält
Eine neue Zeichenfolge kann erstellt werden, indem andere Zeichenfolgen über den + Operator verkettet werden.
var lang = "java"; lang = lang + "script"; // 'JavaScript'
Der tatsächliche Prozess des obigen Codes lautet: Erstellen Sie zuerst eine neue Zeichenfolge, die 10 Zeichen enthalten kann, und füllen Sie diese Zeichenfolge mit "Java" und "Skript" aus. Der letzte Schritt besteht darin, die ursprünglichen Strings 'Java' und 'Script' zu zerstören, weil diese beiden Saiten nutzlos sind
Dieser Prozess tritt im Hintergrund auf und ist auch der Grund, warum die Snippet -Saiten in einigen alten Browsern (IE6) langsam sind, aber spätere Versionen des Browsers haben dieses Ineffizienzproblem gelöst
Drehen Sie String
Es gibt zwei Möglichkeiten, einen Wert in eine Zeichenfolge, toString () und String () umzuwandeln, umzuwandeln
[Hinweis] Sie können einen leeren String "" " + einen Wert verwenden, um den Wert in eine Zeichenfolge umzuwandeln
tostring ()
Die erste besteht darin, die Methode toString () zu verwenden, die fast jeder Wert hat. Diese Methode gibt die String -Darstellung des entsprechenden Werts zurück
[Anmerkung] undefinierter und Null haben diese Methode nicht
undefined.toString (); // error null.toString (); // error true.toString (); // 'true'false.toString (); //' false''Abc'.toString (); // 'abc'1.23.toString () Objekt] [1,2,3,4] .ToString (); // '1,2,3,4' (New Date ()). ToString (); // "Sun Jun 05 2016 10:04:53 GMT+0800 (China Standard Time)"/ab/i.toString (); // '/ab/i' '' '' '' '' ''
String ()
Sie können die Transformationsfunktionsstring () verwenden, wenn Sie nicht wissen, ob der Wert, den Sie konvertieren möchten, undefiniert oder null ist.
Die Transformationsfunktionsstring () folgt den folgenden Regeln:
【1】 Wenn der Wert null ist, geben Sie 'null' zurück; Wenn der Wert undefiniert ist, geben Sie „undefiniert“ zurück
【2】 Wenn der Wert nicht null oder undefiniert ist, rufen Sie die Methode toString () auf und geben Sie den ursprünglichen Typ -Wert zurück
【3】 Wenn das von der Methode toString () zurückgegebene Objekt die Methode ValueOf () aufrufen, um den ursprünglichen Typ -Wert zurückzugeben. Wenn das von der ValueOf () -Methode zurückgegebene Objekt zurückgegeben wird, wird ein Fehler gemeldet
// "3" string ({toString: function () {return 3;}}) // "[Objektobjekt]" String ({valueOf: function () {return 2;}}) // "3" String ({valueOf: function () {return 2;}, toString: Funktion () {) {{}}}}} {}})Längenattribut
Jede Instanz des String -Typs hat ein Längenattribut, das die Anzahl der Zeichen in der Zeichenfolge angibt. Da Saiten unveränderlich sind, ist auch die Länge der Saiten unveränderlich.
Das Längenattribut einer Zeichenfolge wird weder in der for/in Schleife aufgezählt und kann auch nicht über den Löschbetreiber gelöscht werden.
[Anmerkung] Für Zeichenfolge S ist der Index des letzten Zeichens S.Length - 1
var str = "test"; console.log (Str.Length); // 4str.length = 6; console.log (str, str. Length); // "test", 4
Beispielmethode
EINZELTEMALTE METHODE
Der String -Typ ist ein Wrapper -Typ, der einer Zeichenfolge entspricht und die drei Methoden der allgemeinen Methoden des Objektobjekts tostring (), tolocalestring () und valueOf () erbt.
【ToString ()】
Die Methode toString () gibt den ursprünglichen String -Wert von String zurück
【Tolocalestring ()】
Die Methode Tolocalestring () gibt den ursprünglichen String -Wert von String zurück
【Valueof ()】
Die ValueOf () -Methode gibt den ursprünglichen String -Wert der Zeichenfolge zurück
console.log ("test" .Valueof ()); // "test" console.log ("test" .toString ()); // "test" console.log ("test" .tolocalestring ()); // "test"Zugriff auf Charaktermethoden
Es gibt vier Methoden zum Zugriff auf Zeichen in Saiten: chartat (), klammern [], charcodeat () und von charcode ().
【Chartat ()】
Die charat () -Methode empfängt einen Parameter basierend auf der Zeichenposition von 0 und gibt das Zeichen an der angegebenen Position zurück. Wenn der Parameter leer oder nan ist, beträgt der Standardparameter 0; Wenn der Parameter außerhalb des Bereichs ist, wird eine leere Zeichenfolge zurückgegeben
var str = "hello"; console.log (str.charat (1)); // econsole.log (str.charat (-1)); // '' console.log (str.charat (10)); // '' console.log (str.charat (); // h console.log (st.charat (nan); // H.
Die charat () -Methode umfasst implizite Typumwandlung der Number () -Funktion. Bei konvertiertem in einen numerischen Wert wird die Zeichenfolge gemäß den oben genannten Regeln ausgegeben. Bei der Konvertierung in NAN wird das 0. Zeichen ausgegeben.
var str = "Hallo"; console.log (str.charat (true)); // 'e'console.log (str.charat (falsch)); //' h'console.log (str.charat ('abc'); // 'H'console.log (str.charat ({{{});[Anmerkung] Die Ergebnisse von X.Charat (POS) und X.Substring (POS, POS+1), X.Substr (POS, 1), X.Slice (POS, POS+1) sind gleich.
var str = "hello"; console.log (str.charat (1)); // 'e'console.log (Str.Substring (1,2)); //' e'console.log (Str.Slice (1,2)); // 'e'console.log (Str.Substr (1,1)); //' E.
【Zweigstellen】
ECMascript5 definiert eine andere Möglichkeit, auf Zeichen zuzugreifen, indem Sie quadratische Klammern plus numerische Indizes verwenden, um auf bestimmte Zeichen in einer Zeichenfolge zuzugreifen. Wenn der Parameter außerhalb des Bereichs oder der NAN ist, ist die Ausgabe undefiniert. Wenn es keinen Parameter gibt, wird ein Fehler gemeldet. Diese Methode hat nicht die implizite Typumwandlung der Number () -Transformationsfunktion, aber der Parameter kann in einen numerischen Wert konvertiert werden, wenn es sich um ein Array von Singularwerten handelt.
[Hinweis] IE7-Browser unterstützt nicht
var str = "hello"; console.log (str [0]); // hconsole.log (str [1]]); // econsole.log (stro [false]); // undefinedConsole.log (STR [-1]); // unddefinedConsole.Log (str [nan]).
【Charcodeat ()】
Die Methode charCodeat () ähnelt der charat () -Methode, die einen Parameter erhält, der auf der Zeichenposition von 0 basiert, jedoch eine 16-Bit-Unicode-Codierung des angegebenen Zeichens zurückgibt. Der Rückgabewert ist eine 16-Bit-Ganzzahl zwischen 0 und 65535, dh zwischen 0x00-0xffff
Wenn der Parameter leer oder nan ist, beträgt der Standardparameter 0; Wenn der Parameter außerhalb des Bereichs liegt, wird die NAN zurückgegeben.
var str = "Hallo"; console.log (str.charCodeat ()); // 104console.log (str.charCodeat (0)); // 104console.log (str.charcodeat (1)); // 1 01console.log (str.charCodeat (-1)); // nanconsole.log (str.charcodeat (10)); // nanconsole.log (str.charcodeat (nan)); // 104
In ähnlicher Weise beinhaltet die Methode charCodeat () die implizite Typumwandlung der Number () -Funktion. Wenn der entsprechende Wert in einen numerischen Wert konvertiert wird, wird der entsprechende Wert gemäß den oben genannten Regeln ausgegeben. Bei der Konvertierung in NAN wird die Zeichenkodierung des 0. Zeichens ausgegeben.
var str = "Hallo"; console.log (str.charCodeat (true)); // 101console.log (Str.CharCodeat (false)); // 104console.log (ST R.CharCodeat ('ABC')); // 104console.log (Str.CharCodeat ({})); // 104console.log (str.charCodeat ([2])); // l08【From Charcode ()】
Der String -Konstruktor selbst hat eine statische Methode: from Charcode (). Die Aufgabe dieser Methode besteht darin, eine oder mehrere Zeichencodierungen zu empfangen und sie dann in eine Zeichenfolge umzuwandeln. Im Wesentlichen führt diese Methode den entgegengesetzten Betrieb aus der Instanzmethode CharCodeat () aus. Wenn der Parameter leer und nan ist, wird eine leere Zeichenfolge zurückgegeben. Wenn der Parameter den Bereich von 0-65535 überschreitet, sind die Ausgabezeichen unkontrollierbar.
console.log (String.FromCharCode (104,101,108,108,111)); // 'Hello'console.log (String.FromCharCode (0x6211,0x662f, 0x5c0f, 0x706b, 0x67f4)); //' i am wenig ein wenig ein wenig ein wenig match'console.log (string.fromCharCode ()); // '' console.log (String.FromCharCode (nan)); // '' console.log (string.fromCharCode (-1)); console.log (String.FromCharcode (65560));
Wenn ein Charakter vier Bytes einnimmt, muss er in zwei Zeichen aufgeteilt werden.
console.log (string.fromCharCode (0xd842, 0xdfb7)); // "�line"
Stringnähen
Es gibt zwei Methoden zur String -Nähte: concat () und plus Zeichen +
【Concat ()】
Die concat () -Methode wird verwendet, um eine oder mehrere Zeichenfolgen zu spleißen und die durch Spleißen erhaltene neue Zeichenfolge zurückzugeben, während sich die ursprüngliche Zeichenfolge nicht ändert. Wenn der Parameter (mit Ausnahme des ersten Parameters) keine Zeichenfolge ist, wird er implizit über die String () -Methode in eine Zeichenfolge konvertiert, und dann wird das String -Spleißen durchgeführt.
var stringValue = 'hello'; var result = stringValue.concat ('Welt', '!'); console.log (Ergebnis); // 'Hallo Welt!' Console.log (StringValue); // 'Hallo' '[Anmerkung] Der erste Parameter kann nur eine Zeichenfolge sein. Wenn es sich um andere Typen (außer Arrays) handelt, wird ein Fehler gemeldet.
(1) .Concat ('2'); // einen Fehler melden
(True) .Concat ('False'); // einen Fehler melden
({}). concat ('ABC'); // einen Fehler melden
[Anmerkung] Da das Array auch eine concat () -Methode hat, bestimmen die Parameter, wie man entspricht, ob der zuerst angezeigte Parameter ein Array oder eine Zeichenfolge ist.
'1,2,3, concat ([4,5]); //' 1,2,3,4,5 '
[1,2,3] .Concat (', 4,5'); // [1, 2, 3, ", 4,5"]
【Plus Operator (+)】
Obwohl concat () eine Methode ist, die speziell zum Spleiß von Zeichenfolgen verwendet wird, wird in der Praxis mehr Verwendung des Plus -Operators (+) verwendet. Die Verwendung des Plus -Operators ist oft einfacher als concat ()
var StringValue = 'Hallo'; console.log (StringValue.concat ('World', '!')); // 'Hallo Welt!' Console.log (StringValue + 'World' + '!'); // 'Hallo Welt!'[Hinweis] String -Nähte erfolgt, wenn einer der Operanden eine Zeichenfolge ist oder wenn das Objekt in eine Zeichenfolge konvertiert wird
1 + 2; // 3'1 ' + 2; //' 12'var o = {valueOf: function () {return '1';}}; o + 2; // '12'var o = {valueOf: function () {return 1;}}; o + 2; // 3Substrings erstellen
Es gibt drei Methoden zum Erstellen von Substrings: Slice (), Substr () und Substring ().
【Scheibe()】
Die Slice -Methode (Start, End) erfordert zwei Parameter Start und Ende, die ein Substring in dieser Zeichenfolge aus dem Zeichen an der Startposition zurückgeben, um das Zeichen an der Endposition zu (aber nicht enthalten); Wenn das Ende undefiniert ist oder nicht existiert, gibt es alle Zeichen von der Startposition bis zum Ende der Zeichenfolge zurück
Wenn Start eine negative Zahl ist, start = max (Länge + Start, 0)
Wenn das Ende eine negative Zahl ist, End = max (Länge + Ende, 0)
Start und Ende können keine Positionen austauschen
var StringValue = 'Hello World'; console.log (stringValue.slice ()); // 'Hello World'console.log (StringValue.Slice (2)); //' llo World'console.log (StringValue.sLice (2, nicht definiert)); World'console.log (StringValue.slice (2, -5)); // 'llo 'console.log (StringValue.slice (2, -20)); //' 'console.log (StringValue.Slice (20)); //' 'console.log (StringValue.slice (-2,2)); console.log (StringValue.slice (-2,20)); // 'ld'console.log (StringValue.slice (-20,2)); //' He'console.log (StringValue.slice (-20, -2)); // Hallo Worl '
Die Slice () -Methode umfasst implizite Typumwandlung der Number () -Transformationsfunktion. Wenn der Start in NAN umgewandelt wird, ist es gleichwertig zu Start = 0; Wenn das Ende in NAN umgewandelt wird (außer dass das Ende undefiniert ist), wird eine leere Zeichenfolge ausgegeben
var StringValue = 'Hallo Welt'; console.log (StringValue.Slice (nan)); // 'Hallo world'console.log (StringValue.slice (0, nan)); // '' console.log (StringValue.slice (wahr, [3]); // 'el'console.log (StringValue.Slice (Null, undefiniert); // Hello World'console.LOLS. World'console.log (StringValue.slice ('2', [5]); // 'llo' '【Substring ()】
Die Substring -Methode (Start, End) erfordert zwei Parameter Start und End, was ein Substring in dieser Zeichenfolge aus dem Zeichen an der Startposition zurückgibt, um das Zeichen an der Endposition zu (aber nicht enthalten); Wenn das Ende undefiniert ist oder nicht existiert, gibt es alle Zeichen von der Startposition bis zum Ende der Zeichenfolge zurück
Wenn entweder der Parameter nan oder negativ ist, wird er durch 0 ersetzt
Wenn ein Parameter größer als die Zeichenfolgelänge ist, wird er durch die Saitenlänge ersetzt
Wenn der Start größer als das Ende ist, werden ihre Werte ausgetauscht
var StringValue = 'Hello World'; console.log (StringValue.substring ()); // 'Hello World'console.log (StringValue.substring (2)); //' llo World'console.log (StringValue.substring (2, undfined)); World'console.log (StringValue.substring (20)); // '' console.log (StringValue.substring (-2,2)); // 'He'console.log (StringValue.S ubstring (nan, 2)); // 'He'console.log (StringValue.substring (-2,20)); //' er'console.log (StringValue.substring (-2,20)); // 'Hallo World'console.log (StringValue.substring (3,2)); // 'l'console.log (StringValue.substring (3, nan)); //' Hel 'console.log (stringValue.substring (-20,2)); //' er'console.log (StringValue.substring (-20, -2)); // '' '' '' '
In ähnlicher Weise beinhaltet die Substring () -Methode auch die implizite Typumwandlung der Number () -Transformationsfunktion
var StringValue = 'Hello World'; console.log (StringValue.Substring (wahr, [3]); // 'el'console.log (StringValue.substring (null, undefined); //' Hello World'console.log (StringValue.substring (null) (null); World'console.log (StringValue.substring ({})); // 'Hello World'console.log (StringValue.substring (' 2 ', [5]); //' llo ''【Substr ()】
Die Substr (Start, End) -Methode erfordert zwei Parameter Start und Ende. Ende repräsentiert die Anzahl der Zeichen im zurückgegebenen Substring; Diese Methode gibt eine Substring von Endzeichen zurück, die vom Charakter an der Startposition in dieser Zeichenfolge beginnt. Wenn das Ende undefiniert ist oder nicht existiert, gibt es alle Zeichen von der Startposition bis zum Ende der Zeichenfolge zurück
Wenn Start eine negative Zahl ist, start = max (Länge + Start, 0)
Wenn Start NAN ist, ist es gleichwertig zu starten = 0
Wenn Ende eine negative Zahl oder Nan ist, End = 0, wird eine leere Zeichenfolge zurückgegeben
Start und Ende können keine Positionen austauschen
[Hinweis] Diese Methode ist nicht der ECMAScript -Standard und wurde veraltet
[Anmerkung] IE8-Der Browser hat ein Problem bei der Behandlung der Situation, in der negative Werte an substr () übergeben werden. Er gibt den ursprünglichen String zurück
var StringValue = 'Hello World'; console.log (StringValue.substr ()); // 'Hello World'console.log (StringValue.substr (2)); //' llo World'console.log (StringValue.substr (2, nicht definiert)); World'console.log (StringValue.substr (2, nan)); // '' console.log (StringValue.substr (nan, 2)); // 'He'console.log (StringValue.Substr (20)); //' console.log (stringv alue.substr (-2,3)); // 'ld'console.log (StringValue.substr (-2,20)); //' ld'console.log (StringValue.Substr –20,2)); // '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '', '' '' '' '' '' '' '' '' '' '', '' '' '' '' '' '' '' '' '' '', '' '' '' '' '' '' '' '' '' '', console.log (stringValue.substr (2,5)); // llo w
In ähnlicher Weise beinhaltet die Substr () -Methode auch die implizite Typumwandlung der Number () -Transformationsfunktion
var StringValue = 'Hello World'; console.log (StringValue.substr (true, [3]); // 'el'console.log (StringValue.substr (null, undefiniert); //' Hello World'console.log (StringValue.substr ({})); World'console.log (StringValue.substr ('2', [5]); // 'llo W'Saitenposition
Es gibt zwei Möglichkeiten, den Ort der Substrings aus Strings zu finden: Indexof () und lastIndexof ()
【Indexof ()】
Indexof (SearchString, Start) -Methode empfängt zwei Parameter: SearchString und Start, Rückgabe des Ortes, an dem die Suche zuerst angezeigt wird, und wenn sie nicht gefunden wird, gibt es -1 zurück
Diese Methode ruft implizit die Funktion String () Transformation auf, um den Suchstring-Nicht-String-Wert in String umzuwandeln. Ruft die Number () -Transformationsfunktion implizit auf, um den nicht-numerischen Wert (außer undefined) in den numerischen Wert in den numerischen Wert umzuwandeln
SearchString stellt das zu durchsuchende Substring dar; Start repräsentiert die Ausgangsposition der Suche. Wenn der Parameter ignoriert wird oder der Parameter undefiniert, NAN oder negativ ist, starten Sie = 0
var String = 'Hallo Welt World '; console.log (String.Indexof (' ld ')); // 9console.log (String.Indexof (' ld ', undefiniert); // 9console.log (String.Indexof (' ld ', nan); // 9console.log (Indexof (' st ring.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ( 'ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (String.Indexof ('ld',-1)); // 9 console.log (string.indexof ('ld', 10)); // 15console.log (string.indexof ('ld', [10]); // 15console.log (String.Index Von ('true', [10])); //-1console.log (string.indexof (false, [10])); //-1console.log (String.Indexof (false, [10])); //-1【LastIndexof ()】
Die letzte Methode von LastInDexof (SearchString, Start) empfängt zwei Parameter: SearchString und Start und gibt das letzte Mal zurück, dass die Suchstring angezeigt wird. Wenn es nicht gefunden wird, gibt es -1 zurück
In ähnlicher Weise fordert diese Methode implizit die Funktion String () Transformation auf, um Suchstring-Nicht-Stringwerte in Zeichenfolgen umzuwandeln. Ruft die Number () -Transformationsfunktion implizit auf, um nicht-numerische Startwerte (außer undefined) in numerische Werte zu konvertieren.
SearchString stellt das zu durchsuchende Substring dar; Start repräsentiert die Ausgangsposition der Suche. Wenn der Parameter ignoriert oder der Parameter undefiniert oder NAN ist, starten Sie = Länge - 1
[Anmerkung] Im Gegensatz zur Indexof () -Methode, wenn Start negativ ist, gibt die Methode -1 zurück
var string = 'hello world world';console.log(string.indexOf('ld'));//9console.log(string.indexOf('ld',undefined));//9console.log(string.indexOf('ld',NaN));//9console.log(string.indexOf('ld',-1));//-1 console.log (string.indexof ('ld', 10)); // 15console.log (string.indexof ('ld', [10]); // 15console.log (String.Index Von ('true', [10])); //-1console.log (string.indexof (false, [10])); //-1console.log (String.Indexof (false, [10])); //-1【Tipps】 Finden Sie alle Substrings heraus, die den Kriterien der Zeichenfolge erfüllen
Alle passenden Substrings finden Sie durch Looping, um indexof () oder lastIndexof () aufzurufen.
Funktion AllIndexof (str, value) {var result = []; var pos = str.Indexof (value); while (pos> -1) {result.push (pos); pos = str.sindexof (value, pos+value.length);【trimmen()】
ECMascript5 definiert die TRIM () -Methode für alle Zeichenfolgen. Diese Methode erstellt eine Kopie der Zeichenfolge, löscht alle leeren Zeichen im Präfix und im Suffix und gibt das Ergebnis zurück
Da die TRIM () -Methode eine Kopie der Zeichenfolge zurückgibt, bleibt das Präfix- und Suffix -Leerzeichen in der ursprünglichen Zeichenfolge unverändert
[Hinweis] IE8-Browser unterstützt nicht
var String = 'Hallo Welt'; console.log (string.trim ()); // 'Hello World'console.log (String); //' Hallo Welt ''
Die Whitespace -Zeichen enthalten nicht nur Leerzeichen, sondern auch Registerkartenzeichen (/T), Zeilenunterbrechungen (/n) und Wagenrückgabezeichen (/r)
'/r/nabc /t'.trim () //' ABC ''
Darüber hinaus unterstützen Firefox, Safari und Webkit nicht standardartigen Trimright () zum Löschen von Whitespace-Zeichen am Ende der Saiten
var string = 'Hallo Welt'; console.log (string.trimright ()); // 'Hallo Welt';
【Tipps】 Verwenden Sie Trim (), um festzustellen, ob das eingegebene Zeichen leer ist
if (usename.trim (). Länge) {alert ('korrekt');} else {alert ('error');}【Tipps】 Simulieren Trim () mit regelmäßigem Ausdruck
Funktion fntrim (str) {return str.replace (/^/s+|/s+$/, '')} console.log (fntrim ('Hallo Welt'); // 'Hallo Welt' 'Fallumwandlung
Es gibt vier Methoden, die in der String -Fallumwandlung in ECMascript beteiligt sind: TolowerCase (), TolocalelowerCase (), Touppercase () und Tolocaluppercase ()
TolowerCase () und Touppercase () sind zwei klassische Methoden, die aus der gleichen Namensmethode in Java.lang.String entlehnt wurden. Die Methoden TolocalelowerCase () und Tolocaluppercase () werden für bestimmte Regionen implementiert. Für einige Regionen ist die Methode für Regionen die gleichen wie die Ergebnisse, die nach ihren allgemeinen Methoden erzielt wurden. Einige Sprachen (wie türkisch) werden jedoch spezielle Regeln für die Umwandlung von Unicode anwenden. Zu diesem Zeitpunkt muss die Methode für Regionen verwendet werden, um sicherzustellen, dass die korrekte Konvertierung erreicht wird.
【Touppercase ()】
Die Methode touppercase () wandelt String in Großbuchstaben um
【TolowerCase ()】
TolowerCase () -Methode wandelt String in Kleinbuchstaben um
【Tolocaluppercase ()】
Die Methode Tolocaluppercase () konvertiert String in Großbuchstaben (für Region)
【TolocalelowerCase ()】
TolocalelowerCase () -Methode wandelt String in Kleinbuchstaben um (für Region)
[Hinweis] Es ist sicherer, eine regionspezifische Methode zu verwenden, ohne zu wissen, in welchem Gebietsschema Ihr Code ausgeführt wird.
var String = 'Hallo Welt'; console.log (string.tolowerCase ()); // Hallo worldconsole.log (string.tolocalelowerCase ()); // Hallo worldconsole.log (String.touppercase ()); // Hallo Weltconsole.log (String.tolocaluppercase (); // Hallo Weltwolzung ();
Diese 4 Methoden unterstützen String () implizite Typumwandlungen nicht, nur Stringstypen unterstützen
(True) .TolowerCase (); // einen Fehler melden
(2) .TolocalelowerCase (); // einen Fehler melden
({}). touppercase (); // einen Fehler melden
([]). Tolocaluppercase (); // einen Fehler melden
[Hinweis] Die Fallumrechnungsmethode kann kontinuierlich verwendet werden
var String = 'Hallo Welt'; console.log ((String.ToUppercase ()). TolowerCase ()); // Hallo Welt
【Localecompare ()】
Die LOCALECOMPARE () -Methode wird verwendet, um zwei Zeichenfolgen nach den folgenden Regeln zu vergleichen
[1] Wenn die Zeichenfolge vor dem String -Parameter im Alphabet eingestuft werden sollte, wird eine negative Zahl zurückgegeben (meist -1)
【2】 Wenn die Zeichenfolge gleich dem String -Parameter ist, geben Sie 0 zurück
【3】 Wenn die Zeichenfolge nach dem String -Parameter im Alphabet platziert werden sollte, wird eine positive Zahl zurückgegeben (in den meisten Fällen 1)
var stringValue = 'gelb'; console.log (stringValue.localCompare ('brock'); // 1 'y'> 'b'console.log (StringValue.LocalEcompare (' gelb '); // 0' gelb '==' gelb'console.log (Stingvalue.Local.Local.[Anmerkung] Obwohl Großbuchstaben im Alphabet vor Kleinbuchstaben stehen, sind Großbuchstaben <Kleinbuchstaben. Aber die LocalCompare () -Methode berücksichtigt die Sortiersituation der natürlichen Sprache und des Rangs von 'B' vor 'A'
console.log ('b'.localecompare (' a ')); // 1console.log (' b '>' a '); // falseconsole.log (' B'.LocaleCompare ('a'); // 1console.log ('B'> 'a');Das obige ist das relevante Wissen über die detaillierte Erläuterung des String -String -Typs des vom Editor vorgelegten JavaScript -Systems. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!