In JS gibt es drei häufig verwendete Slice (), substr () und substr () in der Zeichen -Intercept -Funktion. Lassen Sie mich Ihnen einige Verwendung und Unterschiede zwischen Slice (), substr () und substr () vorstellen, wenn Sie Zeichen abfangen.
Drei Funktionen zum Aufnehmen von Zeichenfolgen: Slice (Start, [Ende]), Substring (Start, [Ende]) und Substr (Start, [Länge])
Verwandte Attribute:
Scheibe()
Der erste Parameter repräsentiert die Startposition, der zweite Parameter repräsentiert die nächste Position der Endposition, und die Länge des abgefangenen Zeichenfolge ist die Differenz zwischen dem zweiten Parameter und dem ersten Parameter; Wenn der Parameterwert negativ ist, wird der Wert der Zeichenfolgelänge hinzugefügt und in einen positiven Wert konvertiert. Wenn der erste Parameter gleich größer als der zweite Parameter ist, wird eine leere Zeichenfolge zurückgegeben.
Substring ()
Der erste Parameter repräsentiert die Startposition, und der zweite Parameter repräsentiert die nächste Position der Endposition; Wenn der Parameterwert negativ ist, wird der Wert in 0 konvertiert; Unter den beiden Parametern wird der kleinere Wert als Startposition angenommen, und die Länge der abgefangenen Zeichenfolge ist die Differenz zwischen dem größeren und dem kleineren Wert.
substr ()
Der erste Parameter repräsentiert die Startposition, und der zweite Parameter repräsentiert die abgefangene Länge
PS: Alle Saiten beginnen von 0
Beispiel:
<script type = "text/javaScript"> var stmp = "rcinn.cn"; // eine Parameterwarnung verwenden (STMP.Slice (3)); // Aus dem vierten Charakter fangen Sie den letzten Charakter ab; return "nn.cn" alarm (STMP.Substring (3)); // Aus dem vierten Charakter fangen Sie den letzten Charakter ab; Rückgabe "nn.cn" // Verwenden Sie zwei Parameter -Warnungen (STMP.Slice (1,5)) // vom zweiten Zeichen auf das fünfte Zeichen; return "cinn" alarm (STMP.Substring (1,5)); // vom zweiten Charakter bis zum fünften Charakter; Return "Cinn" // Wenn nur ein Parameter verwendet wird und 0 ist, geben Sie dann den gesamten Parameter -Alarm zurück (STMP.Slice (0)); // Return den gesamten String -Alarm (STMP.Substring (0)); // die gesamte String // Return the erste Zeichenhalter (stmp.slice (0,1); // return "r" ring "r zurück" ring "ring" ring "ring" ring "ring" r "return" r zurück " "R" // In dem obigen Beispiel können wir sehen, dass die Verwendung von Slice () und Substring () gleich // die zurückgegebenen Werte sind gleich, aber wenn die Parameter negativ sind, sind ihre Rückgabeteile unterschiedlich. Siehe das folgende Beispiel-Alarm (STMP.Slice (2, -5); // return "i" alarm (stmp.substring (2, -5); // return "rc" // aus den obigen zwei Beispielen können wir sehen, dass Scheiben Scheiben (2, -5) tatsächlich Slice (2,3) // negative Streichel Länge 8 konvertieren (wenn es sich um eine Streichel verlagert. wird zurückgegeben); // Substring (2, -5) ist tatsächlich Substring (2,0) und negative Ziffern werden in 0 umgewandelt, Substring nimmt immer eine geringere Zahl als Ausgangsposition. ALERT (STMP.Substring (1,5)) // Beginnen Sie vom zweiten Charakter zum fünften Charakter; return "cinn" alarm (STMP.Substr (1,5)); // Start vom zweiten Charakter, Abfangen 5 Zeichen; zurück "cinn." </script>
Der Unterschied zwischen Substr- und Substring -Methoden
<script type = "text/javaScript"> var str = "0123456789"; // Alert (Str.Substring (0)); // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Alert (Str.Substring (-10)); // -------------- "0123456789" Alert (Str.Substring (-12)); // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Alert (Str.Substring (2,2)); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Alert (Str.Substr (5)); // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- alert (str.substr (0,10)); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- alert (str.substr (-1,5)); // -------------- "01234" alert (str.substr (-1, -5)); // ---------------- "" </script>
Funktion: split ()
Funktion: Verwenden Sie einen angegebenen Trennzeichen, um eine Zeichenfolge in ein Array aufzuteilen
Beispiel:
str = ”jpg | bmp | gif | ico | png"; arr = thestring.split ("|"); // arr ist ein Array, das Zeichenwerte "JPG", "BMP", "GIF", "ICO" und "PNG" enthält.Funktion: John ()
Funktion: Verwenden Sie den Trennzeichen Ihrer Wahl, um ein Array in eine Zeichenfolge zu kombinieren
Beispiel:
var delimitedString = myarray.join (delimiter); var mylist = new Array ("jpg", "bmp", "gif", "ico", "png"); var portablelist = myList.join ("|"); // Das Ergebnis ist JPG | bmp | gif | ico | png | png | png | png | png | png | png | png | png | png | png | png | png | png | png |Funktion: indexof ()
Funktion: Geben Sie das Index des ersten Zeichens zurück, das das Substring in der Zeichenfolge abgibt
var mystring = ”JavaScript”; var w = mystring.indexof (”v”);
Ich habe eine andere sehr einfache Methode online gesehen, der Code lautet wie folgt:
Funktionsfunktion (s, n) {return s.Replace (/([^x00-xff])/g, "$ 1a"). Slice (0, n) .Replace (/([^x00-xff]) a/g, "$ 1"); }Diese Methode ist sehr klug und im Grunde korrekt. Es wird "im Grunde genommen" gesagt, denn wenn es ein Substring mit Länge 6 links von "123 chinesischer Charakter -Test" nimmt, gibt es "123 chinesische Charaktere" zurück, nicht "123 Chinesisch". Dies ist natürlich nicht unbedingt ein Problem, und in einigen Fällen können die Anforderungen so sein. Diese Methode kann wie folgt verbessert werden:
Funktion func (s, n) {return slice (0, n) .Replace (/([^x00-xff])/g, "$ 1a"). Slice (0, n) .Replace (/([^x00-xff]) a/g, "$ 1"); }Das obige dreht sich alles um diesen Artikel. Ich hoffe, dass es für alle hilfreich sein wird, JavaScript -Programme zu lernen.