Javascriptové metódy pre prácu so reťazcami. Porovnávacie operátory Porovnanie reťazcov v ruskom jquery

Keď píšem v javascripte, často sa musím odvolávať na vyhľadávače, za účelom objasnenia syntaxe metód (a poradia, definície argumentov) pracujúcich so reťazcami.

V tomto článku sa pokúsim poskytnúť príklady a popisy najbežnejších javascriptové metódy súvisiace so strunami. Najpopulárnejšie metódy sú kvôli uľahčeniu umiestnené v hornej časti článku.

Previesť na reťazec

Na reťazec môžete previesť číslo, booleovskú hodnotu alebo objekt.

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

Tento druh manipulácie môžete vykonávať aj pomocou funkcie string ().

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

Nicholas Zakas hovorí: „Ak si nie ste istí hodnotou (null alebo undefined), použite funkciu String (), pretože vráti reťazec bez ohľadu na typ premennej.“

nedefinované znamená, že premennej nebola priradená žiadna hodnota, a nulový, - že mu bola priradená prázdna hodnota (dalo by sa povedať, že null je definovaný ako prázdny objekt).

Rozdelenie reťazca na podreťazce

Na rozdelenie reťazca na pole podreťazcov môžete použiť metódu split ():

Var myString = "prichádzajúce, oddelené, o, čiarky"; var substringArray = myString.split (","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split (",", 3); // ["coming", "apart", "at"]

Ako vyplýva z posledný riadok, hodnota druhého voliteľného argumentu určuje počet prvkov vo vrátenom poli.

Získajte dĺžku reťazca

S vlastnosťou dĺžka môžete nájsť počet znakov unicode v reťazci:

Var myString = "Si celkom charakterný."; Var stringLength = myString.length; // 25

Určenie podreťazca v reťazci

Existujú dva spôsoby, ako veci dokončiť:

Použiť indexOf ():

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

Metóda indexOf () vyhľadá podreťazec (prvý odovzdaný argument) v reťazci (od začiatku reťazca) a vráti pozíciu prvého znaku, od ktorého podreťazec začal zadávať reťazec.

Použiť lastIndexOf ():

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

Metóda lastIndexOf () robí presne to isté, okrem toho, že hľadá posledný podreťazec v reťazci.

V prípade, že sa podreťazec nenájde, obidve metódy vrátia hodnotu -1. Druhý voliteľný argument určuje pozíciu v reťazci, od ktorého chcete spustiť vyhľadávanie. Ak je teda druhý argument pre metódu indexOf () 5, vyhľadávanie sa začne od 5. znaku a 0-4 znaky budú ignorované. Pokiaľ ide o lastIndexOf (), aj keď je druhý argument 5, vyhľadávanie sa začne opačným smerom, pričom znaky 6 a vyššie budú ignorované.

Ako nahradiť časť reťazca

Ak chcete nahradiť časť (alebo dokonca všetky) reťazca, použite metódu replace ().

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

Prvý argument obsahuje časť podreťazca, ktorý sa má nahradiť; druhým argumentom je reťazec, ktorý nahradí nahradený podreťazec. Bude nahradená iba prvá inštancia podreťazca.

Ak chcete nahradiť všetky výskyty podreťazca, použite regulárny výraz s vlajkou „g“.

Var myString = "Predáva automobilové škrupiny na automobilovom pobreží"; var newString = myString.replace ( / automotive / g, "more"); console.log (newString); // "Predáva mušle na morskom pobreží"

Druhý argument môže zahŕňať podreťazec alebo funkciu, ktorá má byť nahradená.

Nájdite postavu na danej pozícii

Ak chcete zistiť, ktorá postava je na danej pozícii, môžete použiť metódu charAt ():

Var myString = "Vtáky z peria"; var whatsAtSeven = myString.charAt (7); // "f"

Ako to často v JavaScripte býva, prvá pozícia začína od 0, nie od 1.

Alternatívne môžete použiť metódu charCodeAt (), avšak namiesto samotného znaku získate jeho kód.

Var myString = "Vtáky z peria"; var whatsAtSeven = myString.charCodeAt (7); // "102" var whatsAtEleven = myString.charCodeAt (11); // "70"

Všimnite si toho, že kód pre veľké písmeno (pozícia 11) sa líši od kódu pre rovnaké písmeno, ale v malých písmenách (pozícia 7).

Reťazenie reťazcov v JavaScripte

Väčšinou budete na spájanie reťazcov používať operátor (+). Reťazce však môžete zreťaziť aj pomocou metódy concat ().

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat ("pravidlá."); // "Futbalové pravidlá Knibb High"

Do reťazca concat () je možné odovzdať viac reťazcov a vo výslednom reťazci budú uvedené v poradí, v akom boli pridané do metódy concat ().

Var stringOne = "Knibb"; var stringTwo = "Vysoká"; var stringThree = "futbal"; var stringFour = "pravidlá."; var finalString = stringOne.concat (stringTwo, stringThree, stringFour); console.log (finalString); // "Knibb vysoké futbalové pravidlá."

Časť reťazca (extrahujte podreťazec v JavaScripte)

Sú tam tri rôzne cesty vytvoriť Nový riadok„vytrhnutím“ časti podreťazca z existujúceho reťazca.

Použitie slice ():

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

Použitie podreťazca ():

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

Pri oboch metódach (slice () a subring ()) je prvým argumentom pozícia znaku, na ktorej podreťazec začína (počítajúc od 0), druhým argumentom je pozícia znaku, na ktorej sa podreťazec končí, a znak uvedený v druhý argument, ktorý nie je zahrnutý vo vrátenom podreťazci.

Použitie substr ():

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

V prípade metódy substr prvý argument tiež určuje pozíciu znaku, na ktorej podreťazec začína. Druhý argument je voliteľný. Druhý argument však zároveň určuje počet znakov, ktoré by mali byť zahrnuté v podreťazci, počnúc pozíciou, ktorú sme už definovali v prvom argumente. Táto technika dobre ilustrované vyššie uvedeným príkladom.

V JavaScripte preveďte reťazec na malé alebo veľké písmená

Existujú štyri metódy na vykonanie potrebných transformácií. Dva na prevod znakov reťazca na veľké písmená.

Var stringOne = "Hovor, nepočujem ťa."; Var stringTwo = stringOne.toLocaleUpperCase (); // "ROZHOVOR, NEMOHEM ŤA SLYŠAŤ" var stringThree = stringOne.toUpperCase (); // "PREHOVORTE SA, NEMOHEM VÁS POČÚVAŤ"

A dve na prevod reťazca na malé písmená:

Var stringOne = „NEMUSÍTE VYKRÝVAŤ“; var stringTwo = stringOne.toLocaleLowerCase (); // „nemusíte“ kričať „var stringThree = stringOne.toLowerCase (); // "nemusíš kričať"

Vo všeobecnosti neexistuje žiadny rozdiel medzi metódou locale a metodou non-locale, avšak „v niektorých jazykoch, ako je turečtina, kde prípad nenasleduje prípad Unicode, môžu byť dôsledky použitia metódy non-locale odlišné. " Riaďte sa preto nasledujúcim pravidlom: „ak nepoznáte jazyk, v ktorom bude kód fungovať, je bezpečnejšie používať miestne metódy“.

Zhoda so vzorom Javascriptu

Prítomnosť vzoru v reťazci môžete skontrolovať pomocou 2 metód.

Metóda match () sa volá na reťazcovom objekte a regulárny výraz sa odovzdáva ako argument metóde match ().

Var myString = "Koľko dreva by mohlo skľučovadlo dať"? var myPattern = /.ood/; var myResult = myString.match (myPattern); // ["drevo"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Koľko dreva môže skľučovadlo dať do dreva"

A metóda exec () sa nazýva na objekte RegExp, reťazec sa odovzdá ako argument:

Var myString = "Koľko dreva by mohlo skľučovadlo dať"? var myPattern = /.huck/; var myResult = myPattern.exec (myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Koľko dreva môže skľučovadlo dať do dreva"

Oba spôsoby vrátia prvý zápas, ktorý sa zhoduje. Ak sa nenájde žiadna zhoda, vráti sa hodnota NULL. Ak má regulárny výraz príznak „g“, potom sa vráti pole obsahujúce všetky zhody.

Môžete tiež použiť metódu search (), ktorá ako argument vezme regulárny výraz a vráti počiatočnú pozíciu prvého zodpovedajúceho vzoru.

Var myString = "Predpokladať"; var patternLocation = myString.search ( / ume /); // 3

Ak sa nenájde žiadna zhoda, metóda vráti hodnotu -1.

Porovnanie dvoch reťazcov pre následné triedenie

Na porovnanie dvoch reťazcov na základe poradia zoradenia v národnom prostredí môžete použiť metódu localeCompare. Metóda localeCompare vracia tri možné hodnoty.

MyString = "kura"; var myStringTwo = "vajíčko"; var whichCameFirst = myString.localeCompare (myStringTwo); // -1 (okrem prehliadača Chrome, ktorý vracia -2) whichCameFirst = myString.localeCompare ("chicken"); // 0 whichCameFirst = myString.localeCompare ("apple"); // 1 (Chrome vráti 2)

Ako je uvedené vyššie, záporná hodnota bude vrátená, ak je pôvodný reťazec zoradený pred argumentom reťazca, ak je reťazcový argument zoradený za pôvodným reťazcom, vráti sa hodnota +1. Ak je vrátená hodnota null, tieto dva reťazce sú ekvivalentné.

Hneď vás upozorním, áno, článok je trochu nesprávny, vitajte v komentároch, sú tam dobré objasnenia).

Dobrý deň.

JavaScript má dvoch podobných operátorov: == a ===. Ak nepoznáte ich rozdiely, môže to mať za následok veľa chýb. Preto som sa rozhodol otvoriť túto tému. Aký je rozdiel medzi == a ===, ako fungujú, prečo sa to stáva a ako sa vyhnúť chybám.

== Operátor porovnáva pre rovnosť, ale === porovnáva pre identitu. Výhodou operátora === je, že neprenáša dve hodnoty na ten istý typ. Z tohto dôvodu sa bežne používa.

Abc == nedefinované; // true, ak abc = nedefinované | null abc === nedefinované; // pravda - iba ak abc = nedefinované!
abc == nepravda; // true ak abc = false | 0 | "" | abc === nepravda; // pravda, iba ak abc = false!
Koniec koncov, zamieňať nepravdu a 0 (alebo „“, alebo) je sotva veľmi dobré.

Samozrejme:
5 === 5; // true true === true; // true "abc" === "abc"; // pravda

Teraz k zaujímavému príkladu.
5 == 5; // pravda 5 === 5; // skutočné nové číslo (5) == 5; // skutočné nové číslo (5) === 5; // nepravda!

Prečo sa to deje? Áno, akékoľvek číslo je predmetom triedy Number. Ale môžete reprezentovať číslo ako číslicu - nejakú konštantu. Je to oznámené raz a je vždy identické. Zároveň však deklaruje nový objekt triedy Number - je mu rovný v hodnote, ale nie je identický (pretože ide o dva úplne odlišné objekty triedy Number).

Polia / objekty

Ale pre polia a objekty pracujú obaja operátori rovnakým spôsobom a porovnávajú pre identitu:
var a = (); a == (); // nepravda a === (); // nepravda a == a; // pravda a === a; // pravda

Na porovnanie polí a objektov môžete napísať špeciálnu funkciu:
funkcia 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])) return false;) return true;)
Trochu odfláknuté, dva cykly a asi hasOwnProperty Zabudol; áno, bude to stačiť

Toto<-

Je tu ešte jedno úskalia. Toto prechádza k tomuto.
(function () (this == 5; // true this === 5; // false)). call (5);

Tu je taká chvíľa. Stojí za to na to nezabudnúť.

Celkom ...

Teraz si predstavme, že píšeme svoj vlastný superrámec, ktorý namiesto == aktívne používa operátor ===, jednoducho preto, že je krajší a niekto v nás nájde niekoľko chýb.
func (nové číslo (5)); (funkcia () (func (toto);)). hovor (5);

Zdá sa, že takéto príklady nie sú životaschopné? Prosím!

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

No, alebo som chcel postavu rozšíriť.
var Five = nové číslo (5); Päť.a = 2; // Chcel som rozšíriť, ale iba 5 sa nerozbalí // tu nejako používame ... func (Five);

To je všetko, dúfam, že to niekomu pomôže. Ďakujem za pozornosť.

Operandy porovnávacieho operátora môžu byť číselné a reťazcové hodnoty. Pri použití Unicode sa reťazce porovnávajú na základe štandardného lexikografického poradia.

Javascript umožňuje prísne porovnávanie aj porovnávanie s typovým liatím. Na presné porovnanie musia byť oba operandy rovnakého typu a:

  • Dva reťazce sú úplne rovnaké, ak pozostávajú z rovnakej postupnosti znakov
  • Dve čísla sú úplne rovnaké, ak sú rovnaké v obvyklom zmysle slova. +0 sa striktne rovná -0.
  • NaN nie je striktne rovná ničomu, vrátane NaN
  • Dva booleovské operandy sú úplne rovnaké, ak sú oba pravdivé alebo nepravdivé
  • Dva objektové operandy sú úplne rovnaké, ak ide o odkazy na rovnaký zdieľaný objekt
  • Null a Undefined sa rovná ==, ale nie je striktne rovnaký ===

Nasledujúca tabuľka popisuje porovnávacie operátory:

Operátor Popis Príklady, ktoré vracajú hodnotu true, ak var1 = 3, var2 = 4
Rovná sa (==) Ak tieto dva operandy nie sú rovnakého typu, javascript prevedie a porovná striktne. Ak je akýmkoľvek operandom číslo alebo logická hodnota, operandy sa prevedú na čísla; ak je nejaký operand reťazec - druhý sa prevedie na reťazec

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

Nerovná sa (! =) Ak operandy nie sú rovnaké, vráti hodnotu true. Ak sú operandy rôznych typov, javascript sa skonvertuje.

var1! = 4
var1! = "5"

Prísne rovnaké (===) Vráti hodnotu true, ak sú operandy striktne rovnaké (pozri vyššie), bez prevodu typu.
Prísne nie je rovnaké (! ==) Vráti hodnotu true, ak operandy nie sú striktne rovnaké (pozri vyššie) alebo sú rôznych typov.

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

Viac (>) Vráti hodnotu true, ak je ľavý operand väčší ako pravý.
Väčšie alebo rovné (> =) Vráti hodnotu true, ak je ľavý operand väčší alebo rovný pravému operandu.

var2> = var1
var1> = 3

Menší (<) Vráti hodnotu true, ak je ľavý operand menší ako pravý.
Menšie alebo rovné (<=) Vráti hodnotu true, ak je ľavý operand menší alebo rovný pravému operandu.

var1<= var2
var2<= 5

Použitie porovnávacích operátorov

Štandardné operátory rovnosti (== a! =) Porovnajte dva operandy bez ohľadu na ich typ. Prísna rovnosť (=== a! ==) porovnáva operandy rovnakého typu. Ak operandy musia byť rovnakého typu a hodnoty, používajte striktnú rovnosť. V opačnom prípade použite bežné operátory rovnosti, ktoré vám umožnia skontrolovať, či sú operandy rovnaké, aj keď sú rôznych typov.

Pri prevode typov prevádza javascript Reťazec , Číslo , Booleovský a Objekt nasledujúcim spôsobom:

  • Pri porovnávaní čísla a reťazca sa reťazec prevedie na číselnú hodnotu. Javascript získava hodnotu čísla z doslovného reťazca: "123" == 123.
  • Ak je jeden z operandov boolovský, potom sa prevedie na 1, ak je pravdivý, a na +0, ak je nepravdivý.
  • Ak je objekt porovnávaný s číslom alebo reťazcom, javascript sa pokúsi získať pre objekt zodpovedajúcu hodnotu. Konvertuje objekt na primitívnu hodnotu, reťazec alebo číslo pomocou metód valueOf a toString. Ak objekt nemožno previesť, vygeneruje sa chyba pri spustení.

Keď píšeš JavaScript, veľmi často musíte surfovať po internete a hľadať informácie o syntaxi a parametroch pre metódy, ktoré fungujú na reťazcoch.

Čítal som veľa článkov o práci so strunami. Tento príspevok ukáže príklady a stručný popis najbežnejších metód práce s reťazcami. Pokúsil som sa umiestniť najbežnejšie metódy na začiatok pre rýchlu orientáciu.

Väčšina skúsených vývojárov je už s mnohými technikami pomerne dobre oboznámená, ale myslím si, že toto je dobrý zoznam pre začiatočníkov, aby ste pochopili škálu techník, ktoré vám môžu pomôcť vykonať zložité operácie jednoduchými prostriedkami.

Konvertuje sa na reťazec

Číslo, booleovský výraz alebo objekt môžete previesť na reťazec:

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

Môžete to urobiť rovnakým spôsobom s Reťazec ():

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

Ak si nie ste istí, ktorá hodnota nie je nulový alebo nedefinované, môžeš použiť Reťazec () ktorý vždy vráti reťazec bez ohľadu na typ hodnoty.

Rozdelenie reťazca na podreťazce

Na rozdelenie reťazcov na pole podreťazcov môžete použiť túto metódu rozdelenie ():

Var myString = "prichádzajúce, oddelené, o, čiarky"; var substringArray = myString.split (","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split (",", 3); // ["coming", "apart", "at"]

Ako vidíte na poslednom riadku, druhým parametrom funkcie je obmedzenie počtu prvkov, ktoré budú vo výslednom poli.

Získanie dĺžky reťazca

Aby sme zistili, koľko znakov je v riadkoch, použijeme túto vlastnosť dĺžka:

Var myString = "Si celkom charakterný."; Var stringLength = myString.length; // 25

Vyhľadajte podreťazec v reťazci

Na nájdenie podreťazca existujú dva spôsoby:

Použitie indexOf ():

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

indexOf () metóda začne hľadať podreťazec na začiatku reťazca a vráti pozíciu začiatku prvého výskytu podreťazca. V tomto prípade - 7. pozícia.

Použitie lastIndexOf ():

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

Metóda vráti počiatočnú pozíciu posledného výskytu podreťazca v reťazci.

Obe metódy vrátia hodnotu -1, ak sa nenájde žiadny podreťazec, a obe používajú voliteľný druhý argument označujúci pozíciu v reťazci, na ktorom chcete začať vyhľadávanie. Ak je teda druhý argument „5“, indexOf () začne hľadať na znaku 5, pričom ignoruje znaky 0-4, pričom lastIndexOf () spustí vyhľadávanie na znaku 5 a vráti sa späť, pričom ignoruje znaky 6 a ďalšie.

Výmena podreťazca

Ak chcete nahradiť výskyt podreťazca v reťazci iným podreťazcom, môžete použiť nahradiť ():

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

Prvý argument je to, čo chcete nahradiť, a druhý argument je nový riadok. Funkcia nahradí iba prvý výskyt podreťazca v reťazci.

Ak chcete nahradiť všetky výskyty, musíte použiť regulárny výraz s globálnym príznakom:

Var myString = "Predáva automobilové škrupiny na automobilovom pobreží"; var newString = myString.replace ( / automotive / g, "more"); console.log (newString); // "Predáva mušle na morskom pobreží"

Druhý argument môže obsahovať vlastnú šablónu alebo funkciu. Viac podrobností nájdete.

Získajte znak na danej pozícii v reťazci

Symbol môžeme získať pomocou funkcie charAt ():

Var myString = "Vtáky z peria"; var whatsAtSeven = myString.charAt (7); // "f"

Ako to často v JavaScripte býva, prvá pozícia na riadku začína od 0, nie od 1.

Prípadne môžete použiť charCodeAt () funkcia, ktorou je znakový kód.

Var myString = "Vtáky z peria"; var whatsAtSeven = myString.charCodeAt (7); // "102" var whatsAtEleven = myString.charCodeAt (11); // "70"

Všimnite si toho, že kód pre znak „F“ (11. pozícia) je iný ako kód pre znak „f“ (pozícia 7).

Reťaziace reťazce

Vo väčšine prípadov môžete na spájanie reťazcov použiť operátor +. Môžete však použiť aj túto metódu concat ():

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat ("pravidlá."); // "Futbalové pravidlá Knibb High"

Týmto spôsobom môžeme zreťaziť mnoho riadkov do jedného v poradí, v akom sú napísané:

Var stringOne = "Knibb"; var stringTwo = "Vysoká"; var stringThree = "futbal"; var stringFour = "pravidlá."; var finalString = stringOne.concat (stringTwo, stringThree, stringFour); console.log (finalString); // "Knibb vysoké futbalové pravidlá."

Extrahovanie podreťazca

Existujú 3 spôsoby, ako získať reťazec z časti iného reťazca:

Použitím plátok ():

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

Použitím podreťazec ():

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

V oboch funkciách je prvým parametrom znak, na ktorom podreťazec začína (začínajúc od polohy 0), a druhým argumentom (voliteľné) je pozícia znaku, na ktorú sa podreťazec vracia. Príklad (5, 10) vráti reťazec medzi pozíciou 5 a 9.

Použitím substr ():

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

Prvým argumentom je pozícia znaku, na ktorej začína nový riadok, a druhým argumentom je počet znakov z počiatočnej pozície nového riadka. Títo. (5, 10) vráti 10 znakov začínajúcich od pozície 5.

Konverzia reťazca na veľké alebo malé písmená.

Existujú 4 spôsoby prekladu. Prvé 2 skonvertujú reťazec na veľké písmená:

Var stringOne = "Hovor, nepočujem ťa."; Var stringTwo = stringOne.toLocaleUpperCase (); // "ROZHOVOR, NEMOHEM ŤA SLYŠAŤ" var stringThree = stringOne.toUpperCase (); // "PREHOVORTE SA, NEMOHEM VÁS POČÚVAŤ"

Ostatné 2 konvertujú reťazec na malé písmená:

Var stringOne = „NEMUSÍTE VYKRÝVAŤ“; var stringTwo = stringOne.toLocaleLowerCase (); // „nemusíte“ kričať „var stringThree = stringOne.toLowerCase (); // "nemusíš kričať"

Je lepšie použiť metódy „locale“, pretože na rôznych miestach, napríklad v Turecku, zobrazenie registrov nefunguje celkom tak, ako sme zvyknutí, a preto môže byť výsledok taký, aký sme chceli. Ak použijete metódy "locale", nebudú žiadne také problémy.

Zhoda vzorov

Zhoda vzorov v reťazci môže byť použitá s 2 metódami, ktoré fungujú rôznymi spôsobmi.

Metóda zápas () sa použije na reťazec a ako parameter vyžaduje regulárny výraz:

Var myString = "Koľko dreva by mohlo skľučovadlo dať"? var myPattern = /.ood/; var myResult = myString.match (myPattern); // ["drevo"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Koľko dreva môže skľučovadlo dať do dreva"

Metóda exec () platí pre objekt regexu a ako parameter berie reťazec:

Var myString = "Koľko dreva by mohlo skľučovadlo dať"? var myPattern = /.huck/; var myResult = myPattern.exec (myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Koľko dreva môže skľučovadlo dať do dreva"

Pri oboch metódach sa vráti iba prvá zhoda. Ak neboli žiadne zhody, vráti sa nulový.

Môžete tiež použiť metódu Vyhľadávanie () ktorý vezme regulárny výraz a vráti pozíciu prvého zápasu vo vzore:

Var myString = "Predpokladať"; var patternLocation = myString.search ( / ume /); // 3

Ak neboli nájdené žiadne zhody, vráti sa „ -1 «.

Porovnajte dva reťazce na triedenie

Môžete porovnať 2 reťazce a zistiť, ktorý z nich je podľa abecedy prvý. Na to použijeme metódu localeCompare () ktorý vráti 3 možné hodnoty:

Var myString = "kura"; var myStringTwo = "vajíčko"; var whichCameFirst = myString.localeCompare (myStringTwo); // -1 (Chrome vráti -2) whichCameFirst = myString.localeCompare ("kura"); // 0 whichCameFirst = myString.localeCompare ("apple"); // 1 (Chrome vráti 2)

Ako je uvedené vyššie, záporné číslo sa vráti, ak argument reťazca nasleduje za pôvodný reťazec. Kladné číslo, ak argument reťazca predchádza pôvodnému reťazcu. Ak sa vráti 0 - znamená, že reťazce sú rovnaké.

Je lepšie použiť if (výsledok< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Ďakujem za pozornosť, dúfam, že ste sa naučili veľa nových a zaujímavých vecí!

Autor článku: Alex. Kategória:
Dátum zverejnenia: 19. 3. 2013