Operandy operátorů porovnání mohou být číselné nebo řetězcové hodnoty. Při použití Unicode jsou řetězce porovnávány na základě standardního lexikografického pořadí.

JavaScript umožňuje jak striktní srovnání, tak srovnání s typem casting. Pro přesné srovnání musí být oba operandy stejného typu a:

  • Dva řetězce jsou přísně stejné, pokud obsahují stejnou sekvenci znaků
  • Dvě čísla jsou přísně stejná, pokud jsou stejná v běžném slova smyslu. +0 se přesně rovná -0.
  • NaN se striktně nerovná ničemu, včetně NaN
  • Dva booleovské operandy jsou přísně stejné, pokud jsou oba pravdivé nebo nepravdivé
  • Dva objektové operandy jsou přísně stejné, pokud jsou odkazy na stejný společný objekt
  • Null a Undefined jsou stejné ==, ale nejsou striktně stejné ===

Následující tabulka popisuje operátory porovnání:

Operátor Popis Příklady, které vrátí hodnotu true, když var1=3, var2=4
Rovné (==) Pokud dva operandy nejsou stejného typu, javascript typy převede a přísně porovná. Pokud je některým operandem číslo nebo booleovská hodnota, pak se operandy převedou na čísla; pokud je některý operand řetězec, druhý se převede na řetězec

3 == var1
"3" == var1
3 == "3"

Nerovná se (!=) Vrátí hodnotu true, pokud se operandy nerovnají. Pokud mají operandy jiný typ, převádí javascript.

var1 != 4
var1 != "5"

Úplně stejné (===) Vrátí hodnotu true, pokud jsou operandy přísně stejné (viz výše), bez konverze typu.
Striktně se nerovná (!==) Vrátí hodnotu true, pokud operandy nejsou striktně stejné (viz výše) nebo jsou různých typů.

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

Více (>) Vrátí hodnotu true, pokud je levý operand větší než pravý operand.
Větší nebo rovno (>=) Vrátí hodnotu true, pokud je levý operand větší nebo roven pravému operandu.

var2 >= var1
var1 >= 3

Méně (<) Vrátí hodnotu true, pokud je levý operand menší než pravý operand.
Méně nebo stejně (<=) Vrátí hodnotu true, pokud je levý operand menší nebo roven pravému operandu.

var1<= var2
var2<= 5

Použití srovnávacích operátorů

Standardní operátory rovnosti (== a !=) porovnávají dva operandy bez ohledu na jejich typ. Přísná rovnost (=== a !==) porovnává operandy stejného typu. Použijte striktní rovnost, pokud operandy musí mít stejný typ a hodnotu. V opačném případě použijte běžné operátory rovnosti, které vám umožňují testovat rovnost operandů, i když jsou různých typů.

Při převodu typů JavaScript převádí String , Number , Boolean a Object následovně:

  • Při porovnávání čísla a řetězce se řetězec převádí na číselnou hodnotu. V tomto případě JavaScript získá číselnou hodnotu z řetězcového literálu: "123" == 123 .
  • Pokud je jeden z operandů booleovský, převede se na 1, pokud je pravdivý, a na +0, pokud je nepravdivý
  • Pokud je objekt porovnáván s číslem nebo řetězcem, JavaScript se pokusí získat odpovídající hodnotu pro objekt. Převádí objekt na primitivní hodnotu, řetězec nebo číslo pomocí metod valueOf a toString. Pokud objekt nelze převést, vygeneruje se runtime chyba.

Když píšeš JavaScript, velmi často musíte brouzdat po internetu a hledat informace o syntaxi a parametrech metod, které pracují s řetězci.

Přečetl jsem spoustu článků o práci se strunami. Tento příspěvek ukáže příklady a stručný popis nejběžnějších metod pro práci s řetězci. Pro rychlou orientaci jsem se pokusil uvést nejběžnější metody na začátek.

Samozřejmě, že většina zkušených vývojářů již bude s mnoha technikami poměrně dobře obeznámena, ale myslím si, že toto je dobrý seznam pro začátečníky, aby pochopili řadu technik, které mohou pomoci provádět složité operace jednoduchými prostředky.

Převod na řetězec

Číslo, booleovský výraz nebo objekt můžete převést na řetězec:

Var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Můžete to udělat stejným způsobem s Tětiva():

Var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Pokud si nejste jisti, jaká hodnota není nula nebo nedefinováno, Můžeš použít Tětiva(), který vždy vrací řetězec bez ohledu na typ hodnoty.

Rozdělení řetězce na podřetězce

Chcete-li rozdělit řetězce do pole podřetězců, můžete použít metodu rozdělit():

Var myString = "přichází,odděluje,za,čárky"; var substringArray = myString.split(","); // ["přichází", "od sebe", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["přichází", "od sebe", "at"]

Jak můžete vidět na posledním řádku, druhým parametrem funkce je omezení počtu prvků, které budou ve výsledném poli.

Získání délky řetězce

Abychom zjistili, kolik znaků je v řetězci, použijeme vlastnost délka:

Var myString = "Jsi pěkná postava."; var stringLength = myString.length; // 25

Hledání podřetězce v řetězci

Existují dva způsoby, jak vyhledat podřetězec:

Používání indexOf():

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

indexOf() Metoda začne hledat podřetězec od začátku řetězce a vrátí pozici začátku prvního výskytu podřetězce. V tomto případě - 7. pozice.

Používání lastIndexOf():

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

Metoda vrací počáteční pozici posledního výskytu podřetězce v řetězci.

Obě metody vrátí hodnotu -1, pokud není podřetězec nalezen, a obě převezmou volitelný druhý argument označující pozici v řetězci, kde má hledání začít. Takže pokud je druhý argument "5", indexOf() zahájí vyhledávání od znaku 5, přičemž ignoruje znaky 0-4, zatímco lastIndexOf() zahájí vyhledávání na znaku 5 a pracuje pozpátku, ignoruje znaky 6 a dále.

Výměna podřetězce

Chcete-li nahradit výskyt podřetězce v řetězci jiným podřetězcem, můžete použít nahradit():

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

První argument je to, co chcete nahradit, a druhý argument je nový řádek. Funkce nahradí pouze první výskyt podřetězce v řetězci.

Chcete-li nahradit všechny výskyty, musíte použít regulární výraz s globálním příznakem:

Var myString = "Prodává automobilové náboje na automobilovém břehu"; var newString = myString.replace(/automotive/g, "moře"); console.log(newString); // "Prodává mořské mušle na břehu moře"

Druhý argument může obsahovat speciální šablonu nebo funkci. Můžete si přečíst více.

Získejte znak na dané pozici v řetězci

Symbol můžeme získat pomocí funkce charAt():

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt(7); // "f"

Jak je často v JavaScriptu, první pozice v řetězci začíná 0, nikoli 1.

Jako alternativní funkci můžete použít charCodeAt() funkce, což je kód znaku.

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Všimněte si, že kód pro znak "F" (pozice 11) je jiný než pro znak "f" (pozice 7).

Zřetězení řetězců

Ve většině případů můžete ke zřetězení řetězců použít operátor „+“. Ale můžete také použít metodu spojit():

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat("pravidla."); // "Pravidla fotbalu Knibb High"

Tímto způsobem můžeme spojit mnoho řádků do jednoho v pořadí, v jakém jsou napsány:

Var stringOne = "Knibb"; var stringTwo = "Vysoká"; var stringThree = "fotbal"; var stringFour = "pravidla."; var finalString = stringOne.concat(stringDva, stringThree, stringFour); console.log(finalString); // "Knibb vysoká pravidla fotbalu."

Extrakce podřetězců

Existují 3 způsoby, jak získat řetězec z části jiného řetězce:

Použitím plátek():

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

Použitím podřetězec():

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

V obou funkcích je prvním parametrem znak, na kterém podřetězec začíná (počínaje pozicí 0) a druhým argumentem (nepovinný) je pozice znaku, na kterou je podřetězec vrácen. Příklad (5, 10) vrátí řetězec mezi pozice 5 a 9.

Použitím substr():

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

První argument je pozice znaku, na které začíná nový řádek a druhý argument je počet znaků od počáteční pozice nového řádku. Tito. (5, 10) vrátí 10 znaků počínaje pozicí 5.

Převeďte řetězec na velká nebo malá písmena.

Existují 4 způsoby překladu. První 2 převedou řetězec na velká písmena:

Var stringOne = "Mluv, neslyším tě."; var stringTwo = stringOne.toLocaleUpperCase(); // "MLUVU, NESLYŠÍM TĚ" var stringThree = stringOne.toUpperCase(); // "MLUVTE, NESLYŠÍM TĚ"

Ostatní 2 převedou řetězec na malá písmena:

Var stringOne = "NEMUSÍTE křičet"; var stringTwo = stringOne.toLocaleLowerCase(); // "nemusíte křičet" var stringThree = stringOne.toLowerCase(); // "nemusíš křičet"

Je lepší používat "lokální" metody, protože... na různých místech, například v Turecku, zobrazení registrů nefunguje úplně tak, jak jsme zvyklí, a proto může být výsledek takový, jaký jsme chtěli. Pokud použijete „lokální“ metody, nebudou takové problémy.

Shoda vzorů

Porovnání vzoru na řetězci lze provést pomocí 2 metod, které fungují odlišně.

Metoda zápas() se aplikuje na řetězec a jako parametr bere regulární výraz:

Var myString = "Kolik dřeva může sklíčidlo na dřevo sklíčidlo"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["dřevo"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Kolik dřeva by mohlo sklíčidlo na dřevo sklíčidlo"

Metoda exec() aplikuje se na objekt regulárního výrazu a jako parametr vezme řetězec:

Var myString = "Kolik dřeva může sklíčidlo na dřevo sklíčidlo"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Kolik dřeva by sklíčidlo mohlo sklíčidlo na dřevo"

V obou metodách je vrácena pouze první shoda. Pokud nejsou žádné shody, vrátí se nula.

Můžete také použít metodu Vyhledávání() který převezme regulární výraz a vrátí pozici první shody ve vzoru:

Var myString = "Předpokládej"; var patternLocation = myString.search(/ume/); // 3

Kdyby nebyly žádné zápasy, “ -1 «.

Porovnání dvou řetězců pro třídění

Můžete porovnat 2 řetězce a určit, který je v abecedě první. K tomu použijeme metodu localeCompare() který vrací 3 možné hodnoty:

Var myString = "kuře"; var myStringTwo = "vejce"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (Chrome vrátí -2) whichCameFirst = myString.localeCompare("kuře"); // 0 whichCameFirst = myString.localeCompare("jablko"); // 1 (Chrome vrátí 2)

Jak je uvedeno výše, je vráceno záporné číslo, pokud argument řetězce následuje za původním řetězcem. Kladné číslo, pokud argument řetězce předchází původní řetězec. Pokud se vrátí 0 - znamená, že čáry jsou stejné.

Pro kontrolu návratové hodnoty je lepší použít if (výsledek< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Děkuji za pozornost, doufám, že jste se dozvěděli mnoho nového a zajímavého!

Autor článku: Alex. Kategorie:
Datum zveřejnění: 19.03.2013

Hned vás varuji, ano, článek je trochu nesprávný, vítejte v komentářích, jsou tam dobrá vysvětlení).

Dobrý den.

V JavaScriptu existují dva podobné operátory: == a ===. Pokud neznáte jejich rozdíly, může to mít za následek spoustu chyb. Tak jsem se rozhodl otevřít toto téma. Jaký je přesně rozdíl mezi == a ===, jak fungují, proč se to děje a jak se vyvarovat chyb.

Operátor == porovnává pro rovnost, ale === srovnává pro identitu. Výhodou operátoru === je, že nepřetypuje dvě hodnoty na stejný typ. To je důvod, proč se běžně používá.

Abc == nedefinováno; // true if abc = undefined | null abc === nedefinováno; // true - pouze pokud abc = undefined!
abc == nepravda; // true if abc = false | 0 | "" | abc === nepravda; // true pouze v případě, že abc = false!
Koneckonců, zaměňovat false a 0 (nebo "", nebo ) není dobrý nápad.

Samozřejmě:
5 === 5; // true true === true; // true "abc" === "abc"; // skutečný

A teď zajímavý příklad.
5 == 5; // pravda 5 === 5; // true new Number(5) == 5; // true new Number(5) === 5; // Nepravdivé!

Proč se tohle děje? Ano, jakékoli číslo je objektem třídy Number. Ale můžete číslo reprezentovat jako číslo - nějakou konstantou. Je deklarován jednou a je vždy identický sám se sebou. Ale zároveň se mu při deklaraci nového objektu třídy Number rovná hodnotově, ale ne identicky (jelikož se jedná o dva zcela odlišné objekty třídy Number).

Pole/Objekty

Ale pro pole a objekty fungují oba operátory stejným způsobem, když porovnávají identitu:
var a = (); a == (); // nepravda a === (); // nepravda a == a; // pravda a === a; // skutečný

Chcete-li porovnat pole a objekty, můžete napsat speciální funkci:
function isEq(a, b)( if(a == b) return true; for(var i in a)( if(!isEq(a[i], b[i])) return false; ) for(var i v b)( if(!isEq(a[i], b[i])) vrátí hodnotu false; ) vrátí hodnotu true; )
Trochu nedbalé, dva cykly a asi hasOwnProperty zapomněl; No, to bude stačit.

Tento<-

Je tu ještě jedno úskalí. Toto je převod do tohoto.
(function())( this == 5; // true this === 5; // false )).call(5);

Tohle je ten moment. Stojí za to na něj nezapomenout.

Celkový...

No, teď si představme, že píšeme vlastní superframework, aktivně používáme operátor === místo == prostě proto, že je hezčí a někdo u nás najde několik chyb.
func(nové číslo(5)); (funkce())( func(to); )).volání(5);

Připadají vám takové příklady neživotaschopné? Prosím!

JQuery:
$.each(, function())( func(this); ));

No, nebo jsem chtěl počet rozšířit.
var Five = new Number(5); pět.a = 2; // chtěl expandovat, ale 5 se prostě nerozbalí // tady to nějak používáme... func(Five);

To je vše, doufám, že se to někomu bude hodit. Děkuji za pozornost.

Když píšu v javascriptu, často se musím obracet na vyhledávače, abych si ujasnil syntaxi metod (a pořadí, definice argumentů), které pracují s řetězci.

V tomto článku se pokusím uvést příklady a popisy nejběžnějších javascriptových metod souvisejících s řetězci. Nejoblíbenější metody jsou pro pohodlí umístěny v horní části článku.

Převést na řetězec

Číslo, logickou hodnotu nebo objekt můžete převést na řetězec.

Var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Podobnou manipulaci můžete provést také pomocí funkce string().

Var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Nicholas Zakas říká: "Pokud si nejste jisti hodnotou (nulovou nebo nedefinovanou), použijte funkci String(), protože vrací řetězec bez ohledu na typ proměnné."

nedefinováno znamená, že proměnné není přiřazena žádná hodnota, a nula, - že je mu přiřazena prázdná hodnota (můžeme říci, že null je definován jako prázdný objekt).

Rozdělte řetězec na podřetězce

Chcete-li rozdělit řetězec na pole podřetězců, můžete použít metodu split():

Var myString = "přichází,odděluje,za,čárky"; var substringArray = myString.split(","); // ["přichází", "od sebe", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["přichází", "od sebe", "at"]

Jak naznačuje poslední řádek, hodnota druhého volitelného argumentu určuje počet prvků ve vráceném poli.

Získejte délku řetězce

Pomocí vlastnosti length můžete zjistit počet znaků Unicode v řetězci:

Var myString = "Jsi pěkná postava."; var stringLength = myString.length; // 25

Definujte podřetězec v řetězci

Existují dva způsoby, jak dosáhnout svého plánu:

Použít indexOf() :

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

Metoda indexOf() hledá podřetězec (první předaný argument) v řetězci (od začátku řetězce) a vrací pozici prvního znaku, od kterého se podřetězec začal v řetězci objevovat.

Použijte lastIndexOf() :

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

Metoda lastIndexOf() dělá vše stejně, kromě toho, že hledá poslední podřetězec, který se v řetězci vyskytuje.

Pokud podřetězec není nalezen, obě metody vrátí hodnotu -1. Druhý volitelný argument určuje pozici v řetězci, kde chcete zahájit vyhledávání. Pokud je tedy druhý argument metody indexOf() 5, hledání začne od 5. znaku a znaky 0-4 budou ignorovány. Pro lastIndexOf() , také pokud je druhý argument 5, hledání začne v opačném směru, přičemž znaky 6. a vyšší budou ignorovány.

Jak nahradit část řetězce

Chcete-li nahradit část (nebo dokonce celý) řetězec, použijte metodu replace().

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

První argument obsahuje část podřetězce, která má být nahrazena; druhý argument je řetězec, který nahradí nahrazovaný podřetězec. Bude nahrazena pouze první instance podřetězce.

Chcete-li nahradit všechny výskyty podřetězce, použijte regulární výraz s příznakem "g".

Var myString = "Prodává automobilové náboje na automobilovém břehu"; var newString = myString.replace(/automotive/g, "moře"); console.log(newString); // "Prodává mořské mušle na břehu moře"

Druhý argument může obsahovat podřetězec nebo funkci, která má být nahrazena.

Najděte postavu na dané pozici

Chcete-li zjistit, který znak je na dané pozici, můžete použít metodu charAt():

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt(7); // "f"

Jak je často v javascriptu, první pozice začíná od 0, nikoli od 1.

Případně můžete použít metodu charCodeAt(), ale místo samotného znaku obdržíte jeho kód.

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Všimněte si, že kód pro velké písmeno (pozice 11) se liší od kódu pro stejné písmeno malým písmenem (pozice 7).

Zřetězení řetězců v javascriptu

Pro zřetězení řetězců budete většinou používat operátor (+). Řetězce ale můžete také zřetězit pomocí metody concat().

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat("pravidla."); // "Pravidla fotbalu Knibb High"

Concat() lze předat více řetězců a výsledný řetězec se objeví v pořadí, v jakém byly přidány do metody concat().

Var stringOne = "Knibb"; var stringTwo = "Vysoká"; var stringThree = "fotbal"; var stringFour = "pravidla."; var finalString = stringOne.concat(stringDva, stringThree, stringFour); console.log(finalString); // "Knibb vysoká pravidla fotbalu."

Část řetězce (extrahovat podřetězec v javascriptu)

Existují tři různé způsoby, jak vytvořit nový řetězec "vytažením" části podřetězce z existujícího řetězce.

Použití slice() :

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

Použití substring() :

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

U obou metod (slice() a substring()) je prvním argumentem pozice znaku, na které podřetězec začíná (počítáno od 0), druhým argumentem je pozice znaku, na které podřetězec končí, a znak určený ve druhém argumentu is není zahrnut ve vráceném podřetězci.

Pomocí substr() :

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

U metody substr první argument také určuje pozici znaku, na které podřetězec začíná. Druhý argument je volitelný. Ale zároveň druhý argument určuje počet znaků, které by měly být zahrnuty v podřetězci, počínaje pozicí, kterou jsme již definovali v prvním argumentu. Tato technika je dobře ilustrována na příkladu výše.

Převod řetězce na malá nebo velká písmena v javascriptu

Existují čtyři způsoby, jak provést potřebné převody. Dvě pro převod řetězcových znaků na velká písmena.

Var stringOne = "Mluv, neslyším tě."; var stringTwo = stringOne.toLocaleUpperCase(); // "MLUVU, NESLYŠÍM TĚ" var stringThree = stringOne.toUpperCase(); // "MLUVTE, NESLYŠÍM TĚ"

A dva pro převod řetězce na malá písmena:

Var stringOne = "NEMUSÍTE křičet"; var stringTwo = stringOne.toLocaleLowerCase(); // "nemusíte křičet" var stringThree = stringOne.toLowerCase(); // "nemusíš křičet"

Obecně neexistuje žádný rozdíl mezi metodou národního prostředí a metodou bez místního nastavení, nicméně „u některých jazyků, jako je turečtina, jejichž velikost písmen se neřídí zavedeným případem Unicode, mohou důsledky použití metody bez místního nastavení být odlišný." Proto se řiďte následujícím pravidlem: "pokud neznáte jazyk, ve kterém poběží kód, je bezpečnější použít metody národního prostředí."

Shoda vzorů v javascriptu

Přítomnost vzoru v řetězci můžete zkontrolovat pomocí 2 metod.

Metoda match() se volá na objekt typu string a předává regulární výraz jako argument metodě match().

Var myString = "Kolik dřeva může sklíčidlo na dřevo sklíčidlo"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["dřevo"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Kolik dřeva by mohlo sklíčidlo na dřevo sklíčidlo"

A metoda exec() se zavolá na objekt RegExp a předá řetězec jako argument:

Var myString = "Kolik dřeva může sklíčidlo na dřevo sklíčidlo"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Kolik dřeva by sklíčidlo mohlo sklíčidlo na dřevo"

Obě metody vrátí první výskyt, který odpovídá. Pokud nebudou nalezeny žádné shody, bude vrácena hodnota NULL. Pokud má regulární výraz příznak "g", výsledkem bude pole obsahující všechny shody.

Můžete také použít metodu search(), která přebírá regulární výraz jako argument a vrací počáteční pozici prvního shodného vzoru.

Var myString = "Předpokládej"; var patternLocation = myString.search(/ume/); // 3

Pokud nejsou nalezeny žádné shody, metoda vrátí -1.

Porovnání dvou řetězců pro pozdější třídění

Chcete-li porovnat dva řetězce na základě pořadí řazení národního prostředí, můžete použít metodu localeCompare. Metoda localeCompare vrací tři možné hodnoty.

MyString = "kuře"; var myStringTwo = "vejce"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (kromě Chrome, který vrací -2) whichCameFirst = myString.localeCompare("kuře"); // 0 whichCameFirst = myString.localeCompare("jablko"); // 1 (Chrome vrátí 2)

Jak je uvedeno výše, bude vrácena záporná hodnota, pokud je původní řetězec seřazen před argument řetězce; pokud je argument řetězce seřazen za původním řetězcem, je vráceno +1. Pokud je vrácena hodnota null, jsou tyto dva řetězce ekvivalentní.