Metody ciągów znaków JavaScript

Metody łańcucha pomagają Ci obsługiwać łańcuchy znaków.

Metody i właściwości łańcucha

Wartości surowe, takie jak "Bill Gates", nie mogą mieć właściwości i metod (ponieważ one nie są obiektami).

Jednak za pomocą JavaScript, metody i właściwości mogą być również stosowane do wartości surowych, ponieważ podczas wykonywania metod i właściwości JavaScript traktuje wartości surowe jako obiekty.

Długość łańcucha

length Właściwość zwraca długość łańcucha:

Przykład

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Spróbuj sam

Wyszukiwanie łańcucha w łańcuchu

indexOf() Metoda zwraca określony tekst w łańcuchu znaków:PierwszyIndeks wystąpienia (pozycja):

Przykład

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

Spróbuj sam

JavaScript liczy pozycje od zera.

0 jest pierwszą pozycją w łańcuchu, 1 jest drugą, 2 jest trzecią ...

lastIndexOf() Metoda zwraca pozycję określonego tekstu w łańcuchu znaków:OstatniIndeks pierwszego wystąpienia:

Przykład

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");

Spróbuj sam

jeśli nie znaleziono tekstu: indexOf() i lastIndexOf() Zwracają wszystkie -1.

Przykład

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

Spróbuj sam

Obie metody przyjmują drugi parametr jako pozycję początkową wyszukiwania.

Przykład

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);

Spróbuj sam

lastIndexOf() Metoda przeszukuje wstecz (od końca do początku), co oznacza, że jeśli drugi parametr wynosi 50, to przeszukuje od pozycji 50 do początku łańcucha.

Przykład

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);

Spróbuj sam

Wyszukiwanie łańcucha w łańcuchu

search() Metoda wyszukuje konkretne wartości w łańcuchu znaków i zwraca pozycję dopasowania:

Przykład

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

Spróbuj sam

Czy zauważyłeś to?

dwa metody,}indexOf() i search(), jestRówna się.

Te dwa metody są różne. Różnica polega na:

  • Metoda search() nie może ustawić drugiego parametru pozycji startowej.
  • Metoda indexOf() nie może ustawić bardziej zaawansowanych wartości wyszukiwania (wyrażenia regularne).

Dowiesz sięWyrażenia regularnez tych rozdziałów nauczyć się tych bardziej zaawansowanych wartości wyszukiwania.

Wyodrębnij część łańcucha

Są trzy metody wyodrębniania części łańcucha:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

Metoda slice()

slice() Wyodrębnij część łańcucha i zwróć wyodrębnioną część w nowym łańcuchu.

Metoda ta ustawia dwa parametry: indeks początkowy (początek), indeks końcowy (koniec).

Ten przykład przycina fragment łańcucha od pozycji 7 do pozycji 13:

Przykład

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

Wynik res to:

Banana

Spróbuj sam

Jeśli któryś z parametrów jest ujemny, liczy się od końca łańcucha.

Ten przykład przycina fragment łańcucha od pozycji -12 do pozycji -6:

Przykład

var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);

Wynik res to:

Banana

Spróbuj sam

Jeśli pominięto drugi parametr, metoda ta przycina resztę łańcucha:

Przykład

var res = str.slice(7);

Spróbuj sam

Albo odliczając od końca:

Przykład

var res = str.slice(-13);

Spróbuj sam

Wskazówka:Ujemne pozycje nie są dostępne w przeglądarkach Internet Explorer 8 i wcześniejszych.

Metoda substring()

substring() Podobnie jak slice().

Różnica polega na tym substring() Nie można przyjąć ujemnych indeksów.

Przykład

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);

Wynik res to:

Banana

Spróbuj sam

Jeśli pominięto drugi parametr, to substring() Przycina resztę łańcucha.

Metoda substr()

substr() Podobnie jak slice().

Różnica polega na tym, że drugi parametr określaDługość.

Przykład

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

Wynik res to:

Banana

Spróbuj sam

Jeśli pominięto drugi parametr, substr() przycina resztkę łańcucha.

Przykład

var str = "Apple, Banana, Mango";
var res = str.substr(7);

Spróbuj sam

Wynik res to:

Banana, Mango

Jeśli pierwszy parametr jest ujemny, pozycja jest obliczana od końca łańcucha.

Przykład

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

Spróbuj sam

Wynik res to:

Mango

Drugi parametr nie może być ujemny, ponieważ określa on długość.

Zastąp zawartość łańcucha

replace() Metoda zastępuje wartość inną wartością określoną w łańcuchu znaków:

Przykład

str = "Proszę odwiedzić Microsoft!";
var n = str.replace("Microsoft", "W3School");

Spróbuj sam

replace() Metoda nie zmienia ciągu znaków, który ją wywołuje. Zwraca nowy ciąg znaków.

Domyślnie,replace() zastępuje tylko pierwsze dopasowanie:

Przykład

str = "Proszę odwiedzić Microsoft i Microsoft!";
var n = str.replace("Microsoft", "W3School");

Spróbuj sam

Domyślnie,replace() Zależy to od tego, czy dopasowanie jest wrażliwe na wielkość liter. Dlatego nie dopasowuje się do "MICROSOFT":

Przykład

str = "Proszę odwiedzić Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

Spróbuj sam

Aby wykonać zastąpienie niezależne od wielkości liter, użyj wyrażenia regularnego /iniezależnie od wielkości liter:

Przykład

str = "Proszę odwiedzić Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

Spróbuj sam

Proszę zauważyć, że wyrażenia regularne nie mają cudzysłowów.

Aby zastąpić wszystkie dopasowania, użyj wyrażenia regularnego g Znak (używany do globalnego wyszukiwania):

Przykład

str = "Proszę odwiedzić Microsoft i Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

Spróbuj sam

Dowiedz się więcej o wyrażeniach regularnych w rozdziale o wyrażeniach regularnych w JavaScript.Wyrażenia regularnezawartość.

Konwersja na duże i małe litery

Poprzez toUpperCase() Konwersja ciągu znaków na duże litery:

Przykład

var text1 = "Hello World!";       // ciąg znaków
var text2 = text1.toUpperCase();  // text2 jest przekształconym na duże litery text1

Spróbuj sam

Poprzez toLowerCase() Konwersja ciągu znaków na małe litery:

Przykład

var text1 = "Hello World!";       // ciąg znaków
var text2 = text1.toLowerCase();  // text2 jest przekształconym na małe litery text1

Spróbuj sam

Metoda concat()

concat() Łączenie dwóch lub więcej ciągów znaków:

Przykład

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

Spróbuj sam

concat() Metoda można użyć zamiast operatora dodawania. Poniższe dwie linie są ekwiwalentne:

Przykład

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

Wszystkie metody łańcucha zwracają nowy ciąg znaków. Nie zmieniają oryginalnego ciągu znaków.

Oficjalnie mówiąc: ciąg znaków jest niemutowalny: ciąg znaków nie może być zmieniony, tylko zastąpiony.

String.trim()

trim() Metoda usuwa białe znaki z obu końców ciągu znaków:

Przykład

var str = "       Hello World!        ";
alert(str.trim());

Ostrzeżenie:Internet Explorer 8 lub wcześniejsze wersje nie obsługują trim() Metoda.

Spróbuj sam

Aby obsługiwać IE 8, możesz używać regular expression w połączeniu z metodą replace() Metoda zastępująca:

Przykład

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

Spróbuj sam

Możesz również użyć powyższego rozwiązania, aby dodać funkcję trim do JavaScript String.prototype:

Przykład

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
var str = "       Hello World!        ";
alert(str.trim());

Spróbuj sam

Wydobywanie znaków z ciągu znaków

To dwa sposoby wydobywania znaków z ciągu znakówBezpiecznyMetoda:

  • charAt(position)
  • charCodeAt(position)

Metoda charAt()

charAt() Metoda zwraca ciąg znaków na określonym indeksie (pozycji):

Przykład

var str = "HELLO WORLD";
str.charAt(0);            // Zwraca H

Spróbuj sam

Metoda charCodeAt()

charCodeAt() Metoda zwraca unicode kod znaku na określonym indeksie w ciągu znaków:

Przykład

var str = "HELLO WORLD";
str.charCodeAt(0);         // Zwraca 72

Spróbuj sam

Dostęp do właściwości (Property Access)

ECMAScript 5 (2009) pozwala na dostęp do właściwości ciągów znaków [ ]:

Przykład

var str = "HELLO WORLD";
str[0];                   // Zwraca H

Spróbuj sam

Dostęp do właściwości jest nieco zawodny:

  • Nie jest kompatybilny z Internet Explorer 7 lub wcześniejszymi wersjami
  • Sprawia, że ciąg znaków wygląda jak tablica (choć tak naprawdę nim nie jest)
  • jeśli nie znajduje się znak[ ] Zwraca undefineda charAt() Zwraca pustą ciąg znaków.
  • Jest tylko do odczytu.str[0] = "A" Nie powoduje błędu (ale również nie działa!)

Przykład

var str = "HELLO WORLD";
str[0] = "A";             // Nie powoduje błędu, ale nie działa
str[0];                   // Zwraca H

Spróbuj sam

Wskazówka:Jeśli chcesz przetwarzać stringę jako tablicę, możesz najpierw ją przekształcić na tablicę.

Konwersja stringi na tablicę

Możesz split() Konwersja stringi na tablicę:

Przykład

var txt = "a,b,c,d,e";   // Ciąg znaków
txt.split(",");          // Rozdziel na znaki
txt.split(" ");          // Rozdziel na znaki
txt.split("|");          // Rozdziel na znaki

Spróbuj sam

Jeśli separator jest pominięty, zwrócona tablica będzie zawierać całą stringę w index [0].

Jeśli separatorem jest "", zwrócona tablica będzie zawierać tablicę z pojedynczymi znakami w odstępach:

Przykład

var txt = "Hello";       // Ciąg znaków
txt.split("\""

Spróbuj sam

Pełny podręcznik referencyjny String

Aby uzyskać pełny podręcznik referencyjny, odwiedź nasz Podręcznik referencyjny JavaScript ciągów znaków.

Ten podręcznik zawiera opisy i przykłady wszystkich właściwości i metod ciągów znaków.