řetězec = "LOL"; console.log(string.includes("lol")); // vrátí false console.log(string.includes("LOL")); // vrátí trueMetoda include() určuje, zda lze jeden řetězec nalézt v jiném řetězci, a v případě potřeby vrací true nebo false.
Syntaxe: -string.includes(searchString[, pozice])
searchString: - Řetězec pro vyhledávání v tomto řetězci.
pozice: -Dodatečné. Pozice v tomto řetězci, na které se má hledat searchString; výchozí 0.
Mám nákupní košík, který zobrazuje možnosti produktů v rozbalovací nabídce, a pokud vyberou „ano“, chci zviditelnit některá další pole na stránce.
Problém je, že nákupní košík obsahuje v textu i modifikátor ceny, který může být u každého produktu jiný. Funguje následující kód:
$(document).ready(function() ( $("select").change(function() ( var str = $("select option:selected").text(); if (str == "Ano (+ $6.95)") ( $(".rytina").show(); ) else ( $(".rytina").hide(); ) )); ));
Raději bych však použil něco takového, což nefunguje:
$(document).ready(function() ( $("select").change(function() ( var str = $("select option:selected").text(); if (str *= "Ano") ( $(".rytí").show(); ) else ( $(".rytí").hide(); ) ));
Chci provést akci pouze v případě, že vybraná možnost obsahuje slovo „Ano“ a ignoruje modifikátor ceny.
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é popisy nejběžnější metody pro práci s řetězci. Pokusil jsem se uvést nejběžnější metody na začátek pro rychlou orientaci.
Samozřejmě, že většina zkušených vývojářů už bude s mnoha technikami docela obeznámena, ale já si myslím, že tohle dobrý seznam pro začátečníky, aby pochopili řadu technik, které mohou pomoci provádět složité operace jednoduchými prostředky.
Čí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.
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", "čárky"] 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.
Abychom zjistili, kolik znaků je v řetězci, použijeme vlastnost délka:
Var myString = "Jsi pěkná postava."; var stringLength = myString.length; // 25
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 se podřetězec nenajde, 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.
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.
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).
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á fotbalová pravidla."
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 (volitelným) 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.
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 žádné takové problémy.
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 sklíčidlo na dřevo"
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 mohlo sklíčidlo na dřevo sklíčidlo"
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 «.
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:Existuje několik způsobů, jak vybrat podřetězce v JavaScriptu, včetně podřetězec(), substr(), plátek() a funkcí regulární výraz.
V JavaScriptu 1.0 a 1.1 podřetězec() existuje jako jediný jednoduchý způsob výběru části většího řetězce. Například pro výběr řádku lis z Výraz, použití "Výraz".substring(2,7). První parametr funkce je index znaků, na kterém začíná výběr, zatímco druhý parametr je index znaků, na kterém výběr končí (nezahrnuje): podřetězec (2,7) zahrnuje indexy 2, 3, 4, 5 a 6.
V JavaScriptu 1.2 funkce substr(), plátek() A regulární výraz lze také použít k rozdělení strun.
Substr() se chová stejně jako substr jazyk Pearl, kde první parametr udává index znaků, na kterém začíná výběr, zatímco druhý parametr udává délku podřetězce. Chcete-li provést stejný úkol jako v předchozím příkladu, musíte použít "Výraz".substr(2,5). Pamatujte, že 2 je počáteční bod a 5 je délka výsledného podřetězce.
Při použití na strunách, plátek() se chová podobně jako funkce podřetězec(). Je však mnohem výkonnější, dokáže pracovat s jakýmkoli typem pole, nejen s řetězci. plátek() také používá záporné offsety pro přístup k požadované pozici, počínaje koncem řádku. "Výraz".slice(2,-3) vrátí podřetězec nalezený mezi druhým znakem a třetím znakem od konce, vrátí se znovu stisknutím.
Poslední a nejuniverzálnější metodou pro práci s podřetězci je práce prostřednictvím funkcí regulárních výrazů v JavaScriptu 1.2. Ještě jednou, věnujte pozornost stejnému příkladu, podřetězci "lis" získané z řetězce "Výraz":
Write("Výraz".match(/press/));
Objekt Tětiva Toto je objektová implementace hodnoty primitivního řetězce. Jeho konstruktor vypadá takto:
Nový řetězec ( význam?)
Tady význam jakýkoli řetězcový výraz, který určuje primitivní hodnotu objektu. Pokud není zadáno, primitivní hodnota objektu je "" .
Hodnota majetku délka je počet znaků v řádku. Pro prázdný řetězec je tato hodnota nula.
Metoda Kotva objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k vytvoření záložky v dokumentu HTML se zadaným název. Například operátor document.write("Můj text".anchor("Záložka")) je ekvivalentní operátoru document.write(" Můj text") .
Metoda velký vrátí řetězec sestávající z objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu velkým písmem. Například příkaz document.write("Můj text".big()) zobrazí na obrazovce prohlížeče řetězec Můj text.
Metoda blikat vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu blikajícím písmem. Tyto značky nejsou součástí standardu HTML a podporují je pouze prohlížeče Netscape a WebTV. Například příkaz document.write("Můj text".blink()) zobrazí na obrazovce prohlížeče řetězec Můj text.
Metoda tučně vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu tučným písmem. Například operátor document.write("Můj text".bold()) zobrazí řádek Můj text .
Metoda charAt vrací řetězec sestávající ze znaku umístěného v daném pozice hodnota primitivního řetězce objekt. Pozice znaků řádku jsou číslovány od nuly do objekt. -1.
Metoda charAtčíselná hodnota pozice hodnota primitivního řetězce objekt vrátí číslo rovné Unicode kódu znaku umístěného v daném objekt. Pozice znaků řádku jsou číslovány od nuly do . -1. Pokud je pozice mimo tento rozsah, vrátí se
Metoda řetězecN libovolné řetězcové výrazy
objekt + metoda concat + .concat( + + řádek0konkat
Metoda pevná metoda vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách .pevný()
Metoda barva vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách metoda barvy písma> řetězcový výraz
Metoda velikost vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu v zadané velikosti písma. Například příkaz document.write("Můj text".fontsize(5)) zobrazí na obrazovce prohlížeče řetězec Můj text.
Metoda zCharCode vytvoří nový řetězec (ale ne objekt typu string), který je zřetězením Unicode znaky s kódy kód1, kód2, , codeN.
Toto je statická metoda objektu Tětiva, takže pro přístup k němu nemusíte konkrétně vytvářet objekt typu řetězec. Příklad:
Var s = String.fromCharCode(65, 66, 67); // s se rovná "ABC"
Metoda indexOf vrací první pozici podřetězce v primitivní řetězcové hodnotě objekt. objekt Start Start Start Start více než objekt objekt
Vyhledávání se provádí zleva doprava. Jinak je tato metoda shodná s metodou. Následující příklad počítá počet výskytů vzoru podřetězce v řetězci str .
Funkce nastat(str, vzor) ( var pos = str.indexOf(vzor); for (počet var = 0; pos != -1; počet++) pos = str.indexOf(vzor, pos + vzor.délka); vrátit počet ;
Metoda kurzíva vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu kurzíva. Například operátor document.write("Můj text".italics()) zobrazí řádek Můj text .
Metoda lastIndexOf vrátí poslední pozici podřetězce v primitivní řetězcové hodnotě objekt objekt. -1. Start Pokud je uveden volitelný argument Start, pak se vyhledávání provede od pozice Start; pokud ne, tak od pozice 0, tedy od prvního znaku řádku. Li negativní, pak je přijat rovna nule Start více než objekt; Li objekt. -1, pak se to bere jako rovno
. -1.
Pokud objekt tento podřetězec neobsahuje, je vrácena hodnota -1.
Metoda uri vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách libovolný řetězcový výraz odkazová metoda odkaz Můj text") .
Podpěra, podpora
Metoda localeCompare porovnává dva řetězce s ohledem na národní nastavení operačního systému. Pokud je primitivní hodnota, vrátí -1 objekt méně řádky1, +1, pokud je větší řádky1 a 0, pokud jsou tyto hodnoty stejné.
Metoda zápas regvyr objekt. Výsledkem shody je pole nalezených podřetězců resp nula, pokud nejsou žádné shody. kde:
Je třeba připomenout, že metoda regvyr.exec mění vlastnosti objektu regvyr. Příklady:
Metoda nahradit odpovídá regulárnímu výrazu regvyr s hodnotou primitivního řetězce objekt a nahradí nalezené podřetězce jinými podřetězci. Výsledkem je nový řetězec, který je kopií původního řetězce s provedenými náhradami. Způsob nahrazení je určen možností globálního vyhledávání v regvyr a typ druhého argumentu.
Li regvyr neobsahuje možnost globálního vyhledávání, pak se vyhledávání provede pro první odpovídající podřetězec regvyr a je nahrazen. Li regvyr obsahuje možnost globálního vyhledávání, pak se shodují všechny podřetězce regvyr a jsou nahrazeny.
čára, pak je jím nahrazen každý nalezený podřetězec. V tomto případě může řádek obsahovat následující vlastnosti objektu RegExp, jako $1 , , $ 9 , lastMatch , lastParen , leftContext a rightContext . Například operátor document.write("Chutná jablka, šťavnatá jablka.".replace(/jablka/g, "hrušky")) zobrazí na obrazovce prohlížeče řádek Vynikající hrušky, šťavnaté hrušky.
Pokud je druhý argument funkce, pak je každý nalezený podřetězec nahrazen voláním této funkce. Funkce má následující argumenty. První argument je nalezený podřetězec, následovaný argumenty odpovídajícími všem podvýrazům regvyr, uzavřený v závorkách, předposledním argumentem je pozice nalezeného podřetězce ve zdrojovém řetězci, počítáno od nuly, a posledním argumentem je samotný zdrojový řetězec. Následující příklad ukazuje, jak metodu používat nahradit můžete napsat funkci pro převod stupňů Fahrenheita na stupně Celsia. Daný scénář
Funkce myfunc($0,$1) ( return (($1-32) * 5 / 9) + "C"; ) funkce f2c(x) ( var s = String(x); return s.replace(/(\d+( \.\d*)?)F\b/, myfunc ) document.write(f2c("212F"));
zobrazí řádek 100C na obrazovce prohlížeče.
Upozorňujeme, že tato metoda mění vlastnosti objektu regvyr.
Nahraďte všechny výskyty podřetězce v řetězci
Často se stává, že potřebujete nahradit všechny výskyty jednoho řetězce jiným řetězcem:
Var str = "foobarfoobar"; str=str.replace(/foo/g,"xxx"); // výsledkem bude str = "xxxbarxxxbar";
Metoda Vyhledávání odpovídá regulárnímu výrazu regvyr s hodnotou primitivního řetězce objekt. Výsledkem shody je pozice prvního nalezeného podřetězce, počítáno od nuly nebo -1, pokud nejsou žádné shody. Zároveň možnost globálního vyhledávání v regvyr je ignorován a vlastnosti regvyr neměň.
Metoda jakékoli číselné výrazy objekt plátek Start, z pozice .plátek( do polohy .plátek( Start bez zahrnutí. Li
a až do konce původního řádku. objekt Pozice znaků řádku jsou číslovány od nuly do Start objekt. +Start. -1. .plátek( Pokud je hodnota objekt. +.plátek(. Pokud je hodnota
záporné, pak je nahrazeno
Metoda malá metoda vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách .malý()
Metoda : pole řetězců(objekt Pole objekt rozdělit poruší primitivní hodnotu. Jakmile je nalezen, podřetězec od konce předchozího oddělovače (nebo od začátku řádku, pokud se jedná o první výskyt oddělovače) po začátek nalezeného je přidán do pole podřetězců. Samotný oddělovač se tedy v textu podřetězce neobjevuje.
Volitelný argument .rozdělit( určuje maximální možnou velikost výsledného pole. Pokud je zadáno, pak po výběru čísla Metoda podřetězce se ukončí, i když skenování původního řetězce není dokončeno.
Oddělovač lze zadat buď jako řetězec, nebo jako regulární výraz. Existuje několik případů, které vyžadují zvláštní pozornost:
Následující příklad používá k určení regulární výraz HTML tagy jako oddělovač. Operátor
zobrazí na obrazovce prohlížeče řádek Text, tučné písmo a kurzívu.
Metoda stávkovat vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách
. Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu přeškrtnutým písmem. Například příkaz document.write("Můj text".strike()) zobrazí na obrazovce prohlížeče řetězec Můj text.
Metoda sub vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu jako dolního indexu. Například příkaz document.write("Můj text".sub()) zobrazí na obrazovce prohlížeče řetězec Můj text.
Metoda substr vrátí podřetězec primitivní hodnoty řetězce objekt počínaje tímto pozice a obsahující délka postavy. Li délka není zadán, pak je vrácen podřetězec počínaje daným pozice a až do konce původního řádku. Li délka je záporné nebo nulové, vrátí se prázdný řetězec.
a až do konce původního řádku. objekt. -1. pozice Li objekt větší nebo rovno pozice., pak je vrácen prázdný řetězec. Li objekt.+pozice.
je záporná, pak je interpretována jako posun od konce řádku, tj. je nahrazena Poznámka pozice. Li je tedy negativní internet Explorer
omylem jej nahradí 0, takže z důvodů kompatibility by tato volba neměla být používána.
Metoda .substring( vrátí podřetězec primitivní hodnoty řetězce objekt plátek Start, z pozice .plátek( do polohy .plátek( podřetězec Start bez zahrnutí. Li
a až do konce původního řádku. objekt není zadán, pak je vrácen podřetězec počínaje pozicí . -1.. -1. Start Negativní argumenty nebo rovno jsou nahrazeny nulou; pokud je argument větší než délka původního řetězce, je jím nahrazen. Li více Start konec , pak si vymění místa. Li rovná se
Výsledkem je řetězcová hodnota, nikoli řetězec. Příklady:
Var src = "abcdef"; var s1 = src.substring(1, 3); // "bc" var s2 = src.substring(1, -1); // "a" var s3 = src.substring(-1, 1); // "a"
Metoda sup vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách . Neexistuje žádná kontrola, zda byl původní řetězec již uzavřen v těchto značkách. Tato metoda se používá ve spojení s metodami document.write a document.writeln k zobrazení textu jako horního indexu. Například příkaz document.write("Můj text".sup()) zobrazí na obrazovce prohlížeče řetězec Můj text.
Podpěra, podpora: Internet Explorer Podporováno od verze 5.5. Netscape Navigator Není podporován.
Metoda toLocaleLowerCase vrátí nový řetězec, ve kterém jsou všechna písmena původního řetězce nahrazena malými, s přihlédnutím k nastavení národního prostředí operačního systému. Zbývající znaky původního řetězce se nezmění. Původní řetězec zůstává stejný. Obvykle tato metoda vrací stejný výsledek jako ; rozdíl je možný pouze v případě, že kódování jazyka koliduje s pravidly Unicode pro převod velkých písmen na malá písmena.
Podpěra, podpora: Internet Explorer Podporováno od verze 5.5. Netscape Navigator Není podporován.
Metoda toLocaleUpperCase vrátí nový řetězec, ve kterém jsou všechna písmena původního řetězce nahrazena velkými písmeny s ohledem na nastavení národního prostředí operačního systému. Zbývající znaky původního řetězce se nezmění. Původní řetězec zůstává stejný. Obvykle tato metoda vrací stejný výsledek jako ; rozdíl je možný pouze v případě, že kódování jazyka koliduje s pravidly Unicode pro převod malých písmen na velká písmena.
Metoda na malá písmena vrátí nový řetězec se všemi písmeny původního řetězce nahrazenými malými. Zbývající znaky původního řetězce se nezmění. Původní řetězec zůstává stejný. Například příkaz document.write("String object".toLowerCase()) vytiskne řetězec objektu řetězec na obrazovku prohlížeče.
Když píšu v javascriptu, často se potřebuji odkazovat vyhledávače, aby byla objasněna syntaxe metod (a pořadí, definice argumentů) pracujících 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.
Čí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).
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", "čárky"] 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.
Pomocí vlastnosti length můžete zjistit počet znaků Unicode v řetězci:
Var myString = "Jsi pěkná postava."; var stringLength = myString.length; // 25
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.
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.
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 v malém písmenu (pozice 7).
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á fotbalová pravidla."
Tam jsou tři různé způsoby vytvořte 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 dobře znázorněno na příkladu výše.
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 jiné než místní 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í."
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 sklíčidlo na dřevo"
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 mohlo sklíčidlo na dřevo sklíčidlo"
Obě metody vrátí první výskyt, který se shoduje. 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.
Chcete-li porovnat dva řetězce na základě pořadí řazení v národním 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 argumentem ř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í.