Jquery získá podřetězec z řetězce. javascriptové metody pro práci s řetězci

24.08.2023

Metoda 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.

řetězec = "LOL"; console.log(string.includes("lol")); // vrátí false console.log(string.includes("LOL")); // vrátí true

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.

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", "čá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.

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 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.

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á fotbalová pravidla."

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 (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.

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 žádné 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 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 «.

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

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/));

Vestavěný objekt Tětiva

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 "" .

Vlastnosti objektu String:

konstruktér Konstruktor, který vytvořil objekt. Počet znaků na řádek. prototyp Odkaz na prototyp třídy objektů.

Standardní metody řetězcových objektů

Vrátí znak na dané pozici v řetězci. Vrátí kód znaku umístěného na dané pozici v řetězci. Vrátí zřetězení řetězců. Vytvoří řetězec znaků dáno kódy Unicode. Vrátí pozici prvního výskytu zadaného podřetězce. Vrátí pozici posledního výskytu zadaného podřetězce. Porovná dva řetězce na základě jazyka operační systém. Porovná řetězec s regulárním výrazem. Porovná řetězec s regulárním výrazem a nahradí nalezený podřetězec novým podřetězcem. Porovná řetězec s regulárním výrazem. Načte část řetězce a vrátí nový řádek. Rozdělí řetězec na pole podřetězců. Vrátí podřetězec daný pozicí a délkou. Vrátí podřetězec určený počáteční a koncovou pozicí. Převede všechna písmena řetězce na malá s ohledem na jazyk operačního systému. Převede všechna písmena v řetězci na velká na základě jazyka operačního systému. Převede všechna písmena v řetězci na malá písmena. Převede objekt na řetězec. Převede všechna písmena v řetězci na velká písmena. Vrátí primitivní hodnotu objektu.

Nestandardní metody objektu String

Vytvoří záložku HTML ( …). Zabalí řetězec do značek …. Zabalí řetězec do značek …. Zabalí řetězec do značek …. Zabalí řetězec do značek …. Zabalí řetězec do značek …. Zabalí řetězec do značek …. Zabalí řetězec do značek …. Vytvoří HTML hypertextový odkaz (…). Zabalí řetězec do značek …. Zabalí řetězec do značek …. Zabalí řetězec do značek …. Zabalí řetězec do značek ….

vlastnost délky

Syntax : objekt.délka Atributy: (DontEnum, DontDelete, ReadOnly)

Hodnota majetku délka je počet znaků v řádku. Pro prázdný řetězec je tato hodnota nula.

kotvící metoda

Syntax : objekt.Kotva( název) Argumenty: název Výsledek: hodnota řetězce

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") .

velká metoda

Syntax : objekt.velký() Výsledek: hodnota řetězce

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 mrkání

Syntax : objekt.blikat() Výsledek: hodnota řetězce

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.

odvážná metoda

Syntax : objekt.tučně() Výsledek: hodnota řetězce

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

Syntax : objekt.charAt( pozice) Argumenty: pozice libovolný číselný výraz Výsledek: hodnota řetězce

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.

Pokud je pozice mimo tento rozsah, vrátí se prázdný řetězec. Například příkaz document.write("String".charAt(0)) vytiskne znak C na obrazovku prohlížeče.

Syntax : objekt metoda charCodeAt pozice) Argumenty: pozice libovolný číselný výraz Výsledek: .charCodeAt(

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

NaN

Syntax : objekt. Například operátor document.write("String".charCodeAt(0).toString(16)) zobrazí na obrazovce prohlížeče hexadecimální kód ruského písmene "C": 421. metoda concat, .concat(, …, řádek0) Argumenty: metoda concat, .concat(, …, řádek0řádek1 Výsledek: hodnota řetězce

Metoda řetězecN libovolné řetězcové výrazy

objekt + metoda concat + .concat( + … + řádek0

konkat

vrátí nový řetězec, který je zřetězením původního řetězce a argumentů metody. Tato metoda je ekvivalentní operaci

Syntax : objekt Například operátor document.write("Frost and sun.".concat("Wonderful day.")) zobrazí na obrazovce prohlížeče řádek Frost and sun. Je to nádherný den. Výsledek: hodnota řetězce

Metoda pevná metoda vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách ….pevný()

pevný

Syntax : objekt. 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 dálnopisným písmem. Například příkaz document.write("Můj text".fixed()) zobrazí na obrazovce prohlížeče řetězec Můj text. Argumenty: metoda barvy písma.barva písma(barva) Výsledek: hodnota řetězce

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

barva fontu

Syntax : objekt. 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é barvě. Například příkaz document.write("Můj text".fontcolor("red")) zobrazí na obrazovce prohlížeče řetězec Můj text. metoda velikosti písma) Argumenty: metoda velikosti písma.velikost písma( Výsledek: hodnota řetězce

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.

z metody CharCode

Syntax : String.fromCharCode( kód1, kód2, …, codeN) Argumenty: kód1, kód2, …, codeNčíselné výrazy Výsledek: hodnota řetězce

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

Syntax : objekt.indexOf( podřetězec[,Start]?) Argumenty: podřetězec libovolný řetězcový výraz Start libovolný číselný výraz Výsledek: číselná hodnota

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ívy

Syntax : objekt.kurzíva() Výsledek: hodnota řetězce

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

Syntax : objekt.lastIndexOf( podřetězec[,Start]?) Argumenty: podřetězec libovolný řetězcový výraz Start libovolný číselný výraz Výsledek: číselná hodnota

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.

Vyhledávání se provádí zprava doleva. Jinak je tato metoda shodná s metodou. Příklad:

Syntax : objekt Var n = "Bílá velryba".lastIndexOf("velryba"); // n se rovná 6 odkazová metoda) Argumenty: odkazová metoda.odkaz( Výsledek: hodnota řetězce

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") .

. 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í hypertextového odkazu v dokumentu HTML se zadaným

Syntax : objekt.localeCompare( .concat() Argumenty: .concat(.odkaz( Výsledek: číslo

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ápasu

Syntax : objekt.zápas( regvyr) Argumenty: regvyr Výsledek: pole řetězců

Metoda zápas regvyr objekt. Výsledkem shody je pole nalezených podřetězců resp nula, pokud nejsou žádné shody. kde:

  • Li regvyr neobsahuje možnost globálního vyhledávání, pak se metoda provede regvyr.exec(objekt) a vrátí se jeho výsledek. Výsledné pole obsahuje nalezený podřetězec v prvku s indexem 0 a zbývající prvky obsahují podřetězce odpovídající podvýrazům regvyr, uzavřený v závorkách.
  • Li regvyr obsahuje možnost globálního vyhledávání, pak metodu regvyr.exec(objekt) se provádí, dokud jsou nalezeny shody. Pokud n je počet nalezených shod, pak výsledkem je pole n prvků, které obsahují nalezené podřetězce. Vlastnictví regvyr.lastIndex přiřazeno číslo pozice ve zdrojovém řetězci ukazující na první znak po poslední nalezené shodě nebo 0, pokud nebyly nalezeny žádné shody.

Je třeba připomenout, že metoda regvyr.exec mění vlastnosti objektu regvyr. Příklady:

nahradit metoda

Syntax : objekt.nahradit( regvyr,čára) objekt.nahradit( regvyr,funkce) Argumenty: regvyr regulární výraz řetězec řetězec výraz funkce název funkce nebo deklarace funkce Výsledek: nový řádek

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.

Nahradit příklad

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í

Syntax : objekt.Vyhledávání( regvyr) Argumenty: regvyr jakýkoli regulární výraz Výsledek: číselný výraz

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ěň.

Příklady:

Syntax : objekt plátkovou metodou Start [,.plátek(]?) Argumenty: Start A .plátek( konec Výsledek: nový řádek

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

. Jinými slovy, záporné argumenty jsou považovány za posuny od konce řetězce.

Syntax : objekt Výsledkem je řetězcová hodnota, nikoli řetězec. Například příkaz document.write("ABCDEF".slice(2,-1)) vytiskne řetězec CDE na obrazovku prohlížeče. Výsledek: hodnota řetězce

Metoda malá metoda vrátí řetězec skládající se z primitivní řetězcové hodnoty objekt, uzavřený ve značkách ….malý()

malý

Syntax : objekt. 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 malým písmem. Například příkaz document.write("Můj text".small()) zobrazí na obrazovce prohlížeče řetězec Můj text. dělená metoda [,.rozdělit(]?) Argumenty: dělená metoda oddělovač .rozdělit(.velikost písma( Výsledekčíslo řetězec nebo regulární výraz)

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.

stávková metoda

Syntax : objekt.stávkovat() Výsledek: hodnota řetězce

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.

dílčí metoda

Syntax : objekt.sub() Výsledek: hodnota řetězce

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

Syntax : objekt.substr( pozice [,délka]?) Argumenty: pozice A délkačíselné výrazy Výsledek: hodnota řetězce

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.

Var src = "abcdef"; var s1 = src.substr(1, 3); // "bcd" var s2 = src.substr(1); // "bcdef" var s3 = src.substr(-1); // "f", ale v MSIE: "abcdef"

Syntax : objekt metoda podřetězce Start [,.plátek(]) Argumenty: Start A .plátek(číselné výrazy Výsledek: hodnota řetězce

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"

sup metoda

Syntax : objekt.sup() Výsledek: hodnota řetězce

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.

Metoda toLocaleLowerCase

Syntax : objekt.toLocaleLowerCase() Výsledek: nový řádek

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.

toLocaleUpperCase metoda

Syntax : objekt.toLocaleUpperCase() Výsledek: nový řádek

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 toLowerCase

Syntax : objekt.toLowerCase() Výsledek: nový řádek

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.

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", "čá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.

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 v malém písmenu (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á fotbalová pravidla."

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

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.

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 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í."

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 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.

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

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í.