Argumenty operatorów porównania mogą być wartościami liczbowymi i łańcuchowymi. Ciągi są porównywane na podstawie standardowej kolejności leksykograficznej przy użyciu Unicode.

JavaScript umożliwia zarówno ścisłe porównanie, jak i porównanie rzutowania. Dla ścisłego porównania oba operandy muszą być tego samego typu i:

  • Dwa ciągi są ściśle równe, jeśli składają się z tego samego ciągu znaków
  • Dwie liczby są ściśle równe, jeśli są równe w zwykłym znaczeniu tego słowa. +0 jest ściśle równe -0 .
  • NaN nie jest ściśle równe niczemu, w tym NaN
  • Dwa operandy logiczne są całkowicie równe, jeśli oba są prawdziwe lub fałszywe
  • Dwa operandy obiektów są ściśle równe, jeśli są odwołaniami do tego samego wspólnego obiektu
  • Null i Undefined są równe == ale nie ściśle równe ===

Poniższa tabela opisuje operatory porównania:

Operator Opis Przykłady, które zwracają prawdę dla zm1=3, zm2=4
Równa się (==) Jeśli dwa operandy nie są tego samego typu, javascript dokonuje konwersji typu i ściśle porównuje. Jeśli któryś z operandów jest liczbą lub wartością logiczną, to operandy są konwertowane na liczby; jeśli dowolny operand jest napisem - drugi jest konwertowany na napis

3 == zm1
„3” == zm1
3 == "3"

Nie równe (!=) Zwraca true, jeśli operandy nie są równe. Jeśli operandy mają inny rodzaj, konwertuje JavaScript.

zm1 != 4
zm1 != "5"

Ściśle równe (===) Zwraca true, jeśli operandy są dokładnie równe (patrz powyżej), bez konwersji typu.
Ściśle nie równe (!==) Zwraca true, jeśli operandy nie są dokładnie równe (patrz powyżej) lub są różnych typów.

var2 !== 3
3 !== "3"

Więcej (>) Zwraca prawdę, jeśli lewy operand jest większy niż prawy.
Większe lub równe (>=) Zwraca true, jeśli lewy operand jest większy lub równy prawemu operandowi.

zm2 >= zm1
zm1 >= 3

Mniej (<) Zwraca true, jeśli lewy operand jest mniejszy niż prawy operand.
Mniejsze lub równe (<=) Zwraca true, jeśli lewy operand jest mniejszy lub równy prawemu operandowi.

zmienna1<= var2
var2<= 5

Korzystanie z operatorów porównania

Standardowe operatory równości (== i !=) porównują dwa operandy, niezależnie od ich typu. Ścisła równość (=== i !==) porównuje operandy tego samego typu. Użyj ścisłej równości, jeśli operandy muszą być tego samego typu i wartości. W przeciwnym razie użyj normalnych operatorów równości, które pozwalają sprawdzić równość operandów, nawet jeśli są różnych typów.

Podczas konwersji typów JavaScript konwertuje String , Number , Boolean i Object w następujący sposób:

  • Podczas porównywania liczby i ciągu ciąg jest konwertowany na wartość liczbową. JavaScript pobiera wartość liczby z literału ciągu: "123" == 123 .
  • Jeśli jeden z operandów jest wartością logiczną, to jest konwertowany na 1, jeśli jest prawdziwy i na +0, jeśli jest fałszywy
  • Jeśli obiekt jest porównywany z liczbą lub ciągiem, javascript próbuje uzyskać odpowiednią wartość dla obiektu. Konwertuje obiekt na prymitywną wartość, ciąg lub liczbę za pomocą metod valueOf i toString. Jeśli obiekt nie może zostać przekonwertowany, generowany jest błąd w czasie wykonywania.

Kiedy piszesz JavaScript, bardzo często trzeba surfować po Internecie w poszukiwaniu informacji o składni i parametrach metod, które działają z ciągami.

Przeczytałem wiele artykułów na temat pracy ze strunami. Ten post pokaże przykłady i krótkie opisy najpopularniejszych metod pracy z ciągami. Próbowałem umieścić najczęstsze metody na górze, aby uzyskać szybkie odniesienie.

Oczywiście większość doświadczonych programistów jest już dość zaznajomiona z wieloma metodami, ale myślę, że jest to dobra lista dla początkujących, aby zrozumieć zakres metod, które mogą pomóc w wykonywaniu złożonych operacji za pomocą prostych środków.

Konwertuj na ciąg

Możesz przekonwertować liczbę, wyrażenie logiczne lub obiekt na ciąg:

var mójNumer = 24; // 24 var mójCiąg = mójNumer.toString(); // "24"

Możesz to zrobić w ten sam sposób z Strunowy():

var mójNumer = 24; // 24 var myString = String(myNumber); // "24"

Jeśli nie masz pewności, że wartość nie jest zero lub nieokreślony, możesz użyć Strunowy(), który zawsze zwraca ciąg, niezależnie od typu wartości.

Dzielenie ciągu na podciągi

Aby podzielić ciągi na tablicę podciągów, możesz użyć metody rozdzielać():

Var mójCiąg = "od,od,w,przecinki"; var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["przychodzi", "oddziela", "o"]

Jak widać w ostatnim wierszu, drugim parametrem funkcji jest limit liczby elementów, które znajdą się w końcowej tablicy.

Uzyskiwanie długości sznurka

Aby dowiedzieć się, ile znaków znajduje się w ciągu, używamy właściwości długość:

Var myString = "Jesteś" całkiem postacią."; var stringLength = myString.length; // 25

Znajdowanie podciągu w ciągu

Istnieją dwie metody wyszukiwania podciągu:

Stosowanie indeks():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

indeks() metoda rozpoczyna wyszukiwanie podciągu od początku ciągu i zwraca pozycję początku pierwszego wystąpienia podciągu. W tym przypadku jest to numer 7.

Stosowanie ostatniIndeks():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

Metoda zwraca pozycję początkową ostatniego wystąpienia podciągu w ciągu.

Obie metody zwracają -1, jeśli podciąg nie zostanie znaleziony, i obie przyjmują opcjonalny drugi argument wskazujący pozycję w ciągu, od której chcesz rozpocząć wyszukiwanie. Tak więc, jeśli drugim argumentem jest „5”, indeks() rozpoczyna wyszukiwanie od znaku 5, ignorując znaki 0-4, podczas gdy ostatniIndeks() rozpoczyna wyszukiwanie od znaku 5 i cofa się, ignorując znaki 6 i dalej.

Wymiana podciągu

Aby zastąpić wystąpienie podciągu w ciągu innym podciągiem, możesz użyć zastąpić():

Var sługus = "Josh Hamilton"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Jose Bautista"

Pierwszy argument jest tym, co chcesz zastąpić, a drugim argumentem jest nowy ciąg. Funkcja zastępuje tylko pierwsze wystąpienie podciągu w ciągu.

Aby zastąpić wszystkie wystąpienia, musisz użyć wyrażenia regularnego z flagą globalną:

Var myString = "Ona sprzedaje skorupy samochodowe na brzegu samochodowym"; var nowyString = myString.replace(/automotive/g, "morze"); dziennik konsoli (nowyCiąg); // „Ona sprzedaje muszle morskie na brzegu morza”

Drugi argument może zawierać specjalny szablon lub funkcję. Więcej szczegółów można przeczytać.

Pobierz znak w podanej pozycji w łańcuchu

Możemy uzyskać postać za pomocą funkcji charAt():

Var myString = "Ptaki z piór"; var whatsAtSeven = myString.charAt(7); // "f"

Jak to często bywa w JavaScript, pierwsza pozycja w łańcuchu zaczyna się od 0, a nie od 1.

Jako alternatywną funkcję możesz użyć charKodAt() funkcja, która jest kodem znaku.

Var myString = "Ptaki z piór"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Zauważ, że kod znaku „F” (pozycja 11) różni się od kodu znaku „f” (pozycja 7).

Łączenie strun

W większości przypadków do łączenia ciągów można użyć operatora „+”. Ale możesz też użyć tej metody concate():

Var stringOne = "piłka nożna Knibb High"; var stringTwo = stringOne.concat("zasady."); // „Zasady piłkarskie Knibb High”

W ten sposób możemy połączyć wiele wierszy w jedną w kolejności, w jakiej zostały napisane:

VarstringOne = "Knibb"; var stringDwa = "Wysoki"; var stringThree = "piłka nożna"; var stringCztery = "zasady."; var finalString = ciągJeden.concat(ciągDwa, ciągTrzy, ciągCztery); console.log(finalString); // „Zasady futbolu na wysokim poziomie Knibb”.

Wyodrębnianie podciągu

Istnieją 3 sposoby, aby uzyskać ciąg z części innego ciągu:

Za pomocą plasterek():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringDwa = stringOne.slice(5, 10); // "fghij"

Za pomocą podciąg():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringDwa = stringOne.substring(5, 10); // "fghij"

W obu funkcjach pierwszym parametrem jest znak, od którego zaczyna się podciąg (począwszy od pozycji 0), a drugim argumentem (opcjonalnie) jest pozycja znaku, do której zwracany jest podciąg. Przykład (5, 10) zwraca ciąg znaków między pozycjami 5 i 9.

Za pomocą substr():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringDwa = stringOne.substr(5, 10); // "fghijklmno"

Pierwszym argumentem jest pozycja znaku, od której zaczyna się nowa linia, a drugim argumentem jest liczba znaków od pozycji początkowej nowej linii. Tych. (5, 10) zwraca 10 znaków zaczynając od pozycji 5.

Konwertuj ciąg na wielkie lub małe litery.

Istnieją 4 metody tłumaczenia. Pierwsze 2 konwertują ciąg na wielkie litery:

Var stringOne = "Mów głośniej, nie słyszę cię."; var stringTwo = stringOne.toLocaleUpperCase(); // "MÓW OTWARCIE, NIE SŁYSZĘ CIĘ" var stringThree = stringOne.toUpperCase(); // "MÓW OTWARCIE, NIE SŁYSZĘ CIĘ"

Pozostałe 2 konwertują ciąg na małe litery:

Var stringOne = "NIE MUSISZ krzyczeć"; var stringTwo = stringOne.toLocaleLowerCase(); // "nie musisz krzyczeć" var stringThree = stringOne.toLowerCase(); // „nie musisz krzyczeć”

Lepiej jest używać metod „lokalnych”, ponieważ w różnych miejscach, na przykład w Turcji, wyświetlanie rejestrów nie działa tak, jak jesteśmy przyzwyczajeni, a zatem wynik może być taki, jaki chcieliśmy. Jeśli użyjesz metod „locale”, nie będzie takich problemów.

dopasowanie wzorców

Dopasowanie wzorca w ciągu może być używane z 2 metodami, które działają na różne sposoby.

metoda mecz() stosowane do ciągu i przyjmuje wyrażenie regularne jako parametr:

Var myString = "Ile drewna może pomieścić uchwyt do drewna"; var mójWzór = /.ood/; var mójWynik = mójCiąg.match(mójWzorzec); // ["drewno"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Ile drewna może pomieścić uchwyt do drewna"

metoda exec() jest stosowany do obiektu wyrażenia regularnego i przyjmuje ciąg znaków jako parametr:

Var myString = "Ile drewna może pomieścić uchwyt do drewna"; var mójWzór = /.huck/; var mojWynik = mojWzorzec.exec(mójCiąg); // ["uchwyt"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Ile drewna może pomieścić uchwyt do drewna"

Obie metody zwracają tylko pierwsze dopasowanie. Jeśli nie było dopasowań, zwraca zero.

Możesz również skorzystać z metody Szukaj(), który przyjmuje wyrażenie regularne i zwraca pozycję pierwszego dopasowania wzorca:

Var mójCiąg = "Załóż"; var patternLocation = myString.search(/ume/); // 3

Jeśli nie było dopasowań, zwraca " -1 «.

Porównanie dwóch ciągów do sortowania

Możesz porównać 2 ciągi znaków, aby określić, który z nich jest pierwszy w kolejności alfabetycznej. W tym celu korzystamy z metody ustawienia regionalnePorównaj(), który zwraca 3 możliwe wartości:

Var myString = "kurczak"; var mójStringTwo = "jajko"; var whichCameFirst = myString.localeCompare(myStringDwa); // -1 (Chrome zwraca -2) whichCameFirst = myString.localeCompare("kurczak"); // 0 whichCameFirst = myString.localeCompare("jabłko"); // 1 (Chrome zwraca 2)

Jak pokazano powyżej, liczba ujemna jest zwracana, jeśli argument ciągu występuje po oryginalnym ciągu. Liczba dodatnia, jeśli argument ciągu występuje przed oryginalnym ciągiem. W przypadku zwrotu 0 oznacza, że ​​ciągi są równe.

Aby sprawdzić zwracaną wartość, lepiej użyć if (wynik< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Dziękuję za uwagę, mam nadzieję, że dowiedziałeś się wielu nowych i ciekawych rzeczy!

Autor artykułu: Alex. Kategoria:
Data publikacji: 19.03.2013

Ostrzegam od razu, tak, artykuł jest trochę niepoprawny, witaj w komentarzach, są dobre wyjaśnienia).

Dobry dzień.

JavaScript ma dwa podobne operatory: == i ===. Jeśli nie znasz ich różnic, może to przerodzić się w kilka błędów. Postanowiłem więc otworzyć ten temat. Jaka dokładnie jest różnica między == i ===, jak działają, dlaczego tak się dzieje i jak unikać błędów.

Operator == porównuje pod kątem równości, ale === porównuje pod kątem tożsamości. Zaletą operatora === jest to, że nie przekształca dwóch wartości w ten sam typ. Dlatego jest powszechnie stosowany.

Abc == niezdefiniowane; // prawda, jeśli abc = undefined | null abc === niezdefiniowany; // prawda - tylko jeśli abc = undefined!
abc == fałsz; // prawda, jeśli abc = fałsz | 0 | „” | abc === fałsz; // prawda tylko jeśli abc = fałsz!
W końcu mylenie false i 0 (lub "" lub ) nie jest zbyt dobre.

Oczywiście:
5 === 5; // prawda prawda === prawda; // prawda "abc" === "abc"; // PRAWDA

A teraz ciekawy przykład.
5 == 5; // prawda 5 === 5; // prawda nowa Liczba(5) == 5; // true new Number(5) === 5; // fałszywy!

Dlaczego to się dzieje? Tak, dowolna liczba jest obiektem klasy Numer. Ale możesz przedstawić liczbę jako cyfrę - pewną stałą. Jest deklarowany raz i zawsze jest identyczny. Ale jednocześnie deklarując nowy obiekt klasy Number - jest on równy jej wartości, ale nie identyczny (ponieważ są to dwa zupełnie różne obiekty klasy Number).

Tablice / Obiekty

Ale w przypadku tablic i obiektów oba operatory działają w ten sam sposób, porównując dla tożsamości:
zm = (); a == (); // fałsz a === (); // fałsz a == a; // prawda a === a; // PRAWDA

Aby porównać tablice i obiekty, możesz napisać specjalną funkcję:
funkcja isEq(a, b)( if(a == b) zwraca prawdę; for(zmienna i w a)( if(!isEq(a[i], b[i])) zwraca fałsz; ) for(zmienna i in b)( if(!isEq(a[i], b[i])) zwróć fałsz; ) zwróć prawdę; )
Trochę niechlujstwa, dwa cykle i około ma własną własność zapomniałem; dobrze to zrobi.

Ten<-

Jest jeszcze jedna pułapka. To jest przepustka do tego.
(funkcja()( this == 5; // prawda to === 5; // fałsz )).call(5);

Oto taki moment. Warto o tym nie zapominać.

Całkowity...

Cóż, teraz wyobraź sobie, że piszemy własny superframework, aktywnie używamy operatora === zamiast == po prostu dlatego, że jest ładniejszy, a ktoś znajdzie u nas kilka błędów.
func(nowyNumer(5)); (funkcja()( func(to); )).call(5);

Wydaje się, że takie przykłady nie są opłacalne? Proszę!

jQuery:
$.each(, function()( func(to); ));

No lub chciałem powiększyć sylwetkę.
var Pięć = nowa liczba(5); pięć.a = 2; // Chciałem się rozwinąć, ale tylko 5 się nie rozszerza // tutaj jakoś używamy... func(Five);

To wszystko, mam nadzieję, że komuś się przyda. Dziękuję za uwagę.

Kiedy piszę w javascript, często muszę odwoływać się do wyszukiwarek w celu wyjaśnienia składni metod (oraz kolejności, definicji argumentów) pracujących z ciągami.

W tym artykule postaram się podać przykłady i opisy najpopularniejszych metod javascript związanych z łańcuchami. Dla wygody najpopularniejsze metody znajdują się na górze artykułu.

Konwertuj na ciąg

Możesz przekonwertować liczbę, wartość logiczną lub obiekt na ciąg.

var mójNumer = 24; // 24 var mójCiąg = mójNumer.toString(); // "24"

Możesz to również zrobić za pomocą funkcji string().

var mójNumer = 24; // 24 var myString = String(myNumber); // "24"

Nicholas Zakas mówi: „Jeśli nie masz pewności co do wartości (null lub undefined), użyj funkcji String(), ponieważ zwraca ona ciąg znaków niezależnie od typu zmiennej”.

nieokreślony oznacza, że ​​do zmiennej nie przypisano żadnej wartości, a zero, - że została mu przypisana wartość null (można powiedzieć, że null jest zdefiniowany jako pusty obiekt).

Dzielenie ciągu na podciągi

Aby podzielić ciąg na tablicę podciągów, możesz użyć metody split():

Var mójCiąg = "od,od,w,przecinki"; var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["przychodzi", "oddziela", "o"]

Jak pokazuje ostatni wiersz, wartość drugiego opcjonalnego argumentu określa liczbę elementów w zwróconej tablicy.

Uzyskaj długość ciągu

Za pomocą właściwości length można znaleźć liczbę znaków Unicode w ciągu:

Var myString = "Jesteś" całkiem postacią."; var stringLength = myString.length; // 25

Zdefiniuj podciąg w ciągu

Można to osiągnąć na dwa sposoby:

Użyj indexOf() :

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

Metoda indexOf() wyszukuje podciąg (pierwszy przekazany argument) w ciągu (od początku ciągu) i zwraca pozycję pierwszego znaku, od którego rozpoczęło się wystąpienie podciągu w ciągu.

Użyj lastIndexOf() :

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

Metoda lastIndexOf() robi dokładnie to samo, z wyjątkiem tego, że szuka ostatniego podciągu w ciągu.

Jeśli podciąg nie zostanie znaleziony, obie metody zwracają -1. Drugi opcjonalny argument określa pozycję w ciągu, od której chcesz rozpocząć wyszukiwanie. Tak więc, jeśli drugim argumentem metody indexOf() jest 5, to wyszukiwanie rozpocznie się od piątego znaku, a 0-4 znaki zostaną zignorowane. W przypadku lastIndexOf() , również jeśli drugim argumentem jest 5, wyszukiwanie rozpocznie się od tyłu, z ignorowaniem znaków 6 i wyższych.

Jak wymienić część sznurka

Aby zastąpić część (lub nawet całość) ciągu, użyj metody replace().

Var sługus = "Josh Hamilton"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Jose Bautista"

Pierwszy argument zawiera część podciągu, która ma zostać zastąpiona; drugim argumentem jest ciąg, który zajmie miejsce podciągu, który ma zostać zastąpiony. Tylko pierwsze wystąpienie podciągu zostanie zastąpione.

Aby zastąpić wszystkie wystąpienia podciągu, użyj wyrażenia regularnego z flagą „g”.

Var myString = "Ona sprzedaje skorupy samochodowe na brzegu samochodowym"; var nowyString = myString.replace(/automotive/g, "morze"); dziennik konsoli (nowyCiąg); // „Ona sprzedaje muszle morskie na brzegu morza”

Drugi argument może zawierać podciąg lub funkcję do zastąpienia.

Znajdź postać na danej pozycji

Aby dowiedzieć się, który znak znajduje się na danej pozycji, możesz użyć metody charAt():

Var myString = "Ptaki z piór"; var whatsAtSeven = myString.charAt(7); // "f"

Jak to często bywa w JavaScript, pierwsza pozycja liczy się od 0, a nie od 1.

Alternatywnie możesz użyć metody charCodeAt(), jednak zamiast samego znaku otrzymasz jego kod.

Var myString = "Ptaki z piór"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Zauważ, że kod dla wielkiej litery (pozycja 11) różni się od kodu dla tej samej litery, ale małymi (pozycja 7).

łączenie ciągów w javascript

W większości przypadków do łączenia ciągów użyjesz operatora (+). Ale możesz także łączyć ciągi za pomocą metody concat().

Var stringOne = "piłka nożna Knibb High"; var stringTwo = stringOne.concat("zasady."); // „Zasady piłkarskie Knibb High”

Do concat() można przekazać wiele ciągów, które pojawią się w wynikowym ciągu w kolejności, w jakiej zostały dodane do metody concat().

VarstringOne = "Knibb"; var stringDwa = "Wysoki"; var stringThree = "piłka nożna"; var stringCztery = "zasady."; var finalString = ciągJeden.concat(ciągDwa, ciągTrzy, ciągCztery); console.log(finalString); // „Zasady futbolu na wysokim poziomie Knibb”.

Część ciągu (wyodrębnij podciąg w javascript)

Istnieją trzy różne sposoby tworzenia nowego ciągu przez „wyciągnięcie” części podciągu z istniejącego ciągu.

Używając slice() :

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringDwa = stringOne.slice(5, 10); // "fghij"

Używając substring() :

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringDwa = stringOne.substring(5, 10); // "fghij"

W przypadku obu metod (slice() i substring()) pierwszym argumentem jest pozycja znaku, od której zaczyna się podciąg (licząc od 0), drugi argument to pozycja znaku, na której kończy się podciąg, ze znakiem określonym w drugi argument nieuwzględniony w zwróconym podciągu.

Używając substr() :

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringDwa = stringOne.substr(5, 10); // "fghijklmno"

W przypadku metody substr pierwszy argument określa również pozycję znaku, od której zaczyna się podciąg. Drugi argument jest opcjonalny. Ale jednocześnie drugi argument określa liczbę znaków, które powinny znaleźć się w podciągu, zaczynając od pozycji, którą już zdefiniowaliśmy w pierwszym argumencie. Ta technika jest dobrze zilustrowana w powyższym przykładzie.

Konwertuj ciąg na małe lub wielkie litery w javascript

Istnieją cztery metody wykonania niezbędnych przekształceń. Dwa, aby przekonwertować znaki ciągu na wielkie litery.

Var stringOne = "Mów głośniej, nie słyszę cię."; var stringTwo = stringOne.toLocaleUpperCase(); // "MÓW OTWARCIE, NIE SŁYSZĘ CIĘ" var stringThree = stringOne.toUpperCase(); // "MÓW OTWARCIE, NIE SŁYSZĘ CIĘ"

I dwa, aby przekonwertować ciąg na małe litery:

Var stringOne = "NIE MUSISZ krzyczeć"; var stringTwo = stringOne.toLocaleLowerCase(); // "nie musisz krzyczeć" var stringThree = stringOne.toLowerCase(); // „nie musisz krzyczeć”

Ogólnie rzecz biorąc, nie ma różnicy między metodą lokalną a metodą bez lokalizacji, ale „w przypadku niektórych języków, takich jak turecki, których wielkość liter nie jest zgodna z zalecaną wielkością liter w systemie Unicode, konsekwencje użycia nielokalnej metoda może być inna." Dlatego postępuj zgodnie z następującą zasadą: „jeśli nie znasz języka, w którym będzie działał kod, bezpieczniej jest użyć metod lokalizacji”.

Dopasowywanie wzorców w javascript

Możesz sprawdzić obecność wzorca w ciągu za pomocą 2 metod.

Metoda match() jest wywoływana na obiekcie ciągu, a wyrażenie regularne jest przekazywane jako argument do metody match().

Var myString = "Ile drewna może pomieścić uchwyt do drewna"; var mójWzór = /.ood/; var mójWynik = mójCiąg.match(mójWzorzec); // ["drewno"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Ile drewna może pomieścić uchwyt do drewna"

A metoda exec() jest wywoływana na obiekcie RegExp, ciąg jest przekazywany jako argument:

Var myString = "Ile drewna może pomieścić uchwyt do drewna"; var mójWzór = /.huck/; var mojWynik = mojWzorzec.exec(mójCiąg); // ["uchwyt"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Ile drewna może pomieścić uchwyt do drewna"

Obie metody zwracają pierwsze dopasowane wystąpienie. Jeśli nie zostanie znalezione żadne dopasowanie, zostanie zwrócone NULL. Jeśli wyrażenie regularne ma flagę „g”, w wyniku zostanie zwrócona tablica zawierająca wszystkie dopasowania.

Możesz także użyć metody search(), która jako argument przyjmuje wyrażenie regularne i zwraca pozycję początkową pierwszego pasującego wzorca.

Var mójCiąg = "Załóż"; var patternLocation = myString.search(/ume/); // 3

Jeśli nie zostanie znalezione żadne dopasowanie, metoda zwróci -1.

Porównywanie dwóch ciągów do późniejszego sortowania

Aby porównać dwa ciągi na podstawie kolejności sortowania w ustawieniach regionalnych, możesz użyć metody localeCompare. Metoda localeCompare zwraca trzy możliwe wartości.

Mój Ciąg = "kurczak"; var mójStringTwo = "jajko"; var whichCameFirst = myString.localeCompare(myStringDwa); // -1 (z wyjątkiem przeglądarki Chrome, która zwraca -2) whichCameFirst = myString.localeCompare("kurczak"); // 0 whichCameFirst = myString.localeCompare("jabłko"); // 1 (Chrome zwraca 2)

Jak pokazano powyżej, wartość ujemna zostanie zwrócona, jeśli oryginalny ciąg zostanie posortowany przed argumentem ciągu, jeśli argument ciągu zostanie posortowany po oryginalnym ciągu, zwrócone zostanie +1. Jeśli zwracana jest wartość null, dwa ciągi są równoważne.