Javascript-linjen starter med. Standard strengobjektmetoder

I denne artikel vi taler om hvad det er strenge i JavaScript og metoder til at arbejde med dem.

Strenge er simpelthen grupper af tegn, såsom "JavaScript", "Hej verden!" ", "http://www.quirksmode.org" eller endda "14". For at programmere i JavaScript skal du vide, hvad strenge er, og hvordan du arbejder med dem, da du skal bruge dem meget ofte. Mange ting som f.eks URL-sider, CSS værdier-parametre og form input-elementer er alle strenge.

Først vil jeg prøve at forklare arbejde med strenge, så forskellen mellem i JavaScript. Selvom du har erfaring med programmering på et andet sprog, skal du læse denne del omhyggeligt. Til sidst vil jeg tale om det vigtigste strenge i JavaScript.

Grundlæggende om strenge

Lad os se på det grundlæggende i at arbejde med strenge i JavaScript.

Brug af citater

Når du annoncerer strenge i JavaScript eller arbejd med dem, sæt dem altid i enkelte eller dobbelte anførselstegn. Dette fortæller browseren, at den har at gøre med en streng. Bland ikke brugen af ​​citater i din kode; hvis du starter en linje med et enkelt citat og slutter med et dobbelt citat, vil JavaScript ikke forstå, hvad du mente. Typisk bruger jeg enkelte citater at arbejde med strenge, da jeg besluttede at bruge dobbelte anførselstegn til HTML og enkelte anførselstegn til JavaScript. Selvfølgelig kan du gøre alt anderledes, men jeg råder dig til at komme med en lignende regel for dig selv.

Lad os forestille os to linjer, som vi vil bruge gennem artiklen:

Var a = "Hej verden!"; var b = "Jeg er studerende.";

Vi har nu erklæret to variable, "a" og "b", og tildelt dem strengværdier. Derefter kan vi arbejde med dem, men lad os først løse et problem: lad os sige, at jeg skrev:

Var b = "Jeg er studerende.";

Strengen indeholder et ekstra enkelt citat, og JavaScript mener, at strengen er komplet og viser en fejlmeddelelse uden at forstå, hvad der kommer derefter. Derfor har du brug for flugt citat, fortæller browseren om at behandle det som et tegn og ikke som en linjeafslutning. Dette gøres ved at bruge en omvendt skråstreg før citatet:

Var b = "Jeg\"er studerende.";

Bemærk, at du kan indsætte dobbelte anførselstegn i en streng uden at undslippe dem. Da du bruger enkelte anførselstegn til at starte og afslutte strengen,

Var b = "Jeg er en "elev".";

opfattes uden problemer. Dobbelte anførselstegn behandles automatisk som en del af en streng, ikke en kommando.

Indbyggede funktioner

Når strengene er blevet defineret, kan du begynde at bruge dem. Det kan du f.eks sammenkæde en streng til en anden, eller tag en understreng fra strengen "b" bestående af det andet til fjerde tegn og indsæt dem i midten af ​​strengen "a", eller bestem, hvilket tegn der er det tolvte i "a", hvor mange tegn der er i "b" ”, om de indeholder bogstavet “q” osv.

For at gøre dette kan du bruge de indbyggede funktioner, som JavaScript foruddefinerer for hver linje. En af dem, "længde", returnerer længden af ​​strengen. Det vil sige, hvis du vil beregne længden af ​​"Hej verden!", skriv:

Var c = "Hej verden!".length;

Tidligere tildelte vi denne streng til variablen "a". Således har du lavet variablen "a" til en streng, så funktionen "længde" kan også anvendes på den, og følgende operation vil give samme resultat:

Var c = a. længde;

Husk at du kan bruge "længde" til enhver streng - det er en indbygget funktion. Du kan beregne længden af ​​enhver streng, for eksempel: "location.href" eller "document.title" eller erklæret af dig.

Nedenfor vil jeg præsentere en liste over almindelige indbyggede metoder og egenskaber.

Strenge og tal

Nogle programmeringssprog kræver, at du angiver, om en variabel er et tal eller en streng, før du gør noget andet med den. JavaScript er nemmere henviser til forskellen mellem strenge og tal. Faktisk kan du endda tilføje tal med strenge:

Varc = a + 12;

I nogle programmeringssprog vil behandling af en sådan streng resultere i en fejl. Når alt kommer til alt, er "a" en streng, og "12" er et tal. JavaScript forsøger dog at løse problemet ved at antage, at "12" også er en streng. Således bliver "c" til "Hej verden!12". Det betyder, at hvis du bruger "+" med en streng og et tal, forsøger JavaScript at gøre tallet til en streng. Hvis du anvender matematiske operationer på en streng, forsøger JavaScript at omdanne den til et tal. Hvis det ikke er muligt at konvertere en streng til et tal (for eksempel på grund af tilstedeværelsen af ​​bogstaver i den), returnerer JavaScript NaN - "Not a Number - er ikke et tal."

Endelig er der i JavaScript ingen forskel mellem heltal og flydende kommatal.

Nummer → streng

Til tal til streng konvertering gå ind:

Var c = (16 * 24) / 49 + 12; d = c.toString();

Du kan derefter anvende alle strengmetoder på "d" og "c" indeholder stadig et tal.

Streng → tal

Hvis du vil konvertere en streng til et tal, skal du først sikre dig, at den kun består af tegnene 0-9. For at gøre dette gange jeg simpelthen strengen med 1.

Var c = "1234"; d = c * 1;

Da multiplikation kun virker med tal, gør JavaScript strengen til et tal, hvis det er muligt. Ellers er resultatet NaN.

Bemærk, at hvis du skriver:

Var c = "1234"; d = c + 0;

Resultatet bliver "12340", fordi JavaScript bruger "+" til at sammenkæde strenge i stedet for at tilføje dem.

Strengegenskaber og metoder

Så hvad kan vi gøre med strenge? Foreningen er et særligt tilfælde, men alle andre kommandoer (metoder) kan bruges med enhver streng ved hjælp af konstruktionen:

Strengnavn.metode();

Liste over indbyggede JavaScript-metoder til at arbejde med strenge

Sammenkædning - sammenføjning af strenge

Først kan du sammenkæde strenge ved at tilføje dem sammen, sådan her:

Document.write(a + b);

resultatet bliver: "Hej verden! Jeg er studerende." " Men du vil selvfølgelig gerne have, at der er mellemrum mellem sætninger. For at gøre dette skal du skrive koden som følger:

Document.write(a + " " + b);

Så vi forbinder tre strenge: "a", """" (et mellemrum) og "b", hvilket resulterer i: "Hej verden!" Jeg er studerende. »

Du kan endda bruge tal eller beregninger, for eksempel:

Document.write(a + 3 * 3 + b);

Nu sammenkæder vi strengen "a", derefter resultatet af udtrykket "3 * 3", betragtet som en streng, og "b", og får: "Hej verden!9 Jeg er studerende. »

Du skal være forsigtig, når du bruger tilsætning. Hold

Document.write(a + 3 + 3 + b);

forbinder 4 strenge: "a", "3", "3" og "b", fordi "+" i I dette tilfælde betyder "at slutte sig til linjerne", ikke "at tilføje" og resultatet er: "Hej verden!33 Jeg er studerende. " Hvis du vil tilføje 3 og 3, før du opretter en streng, skal du bruge parenteser.

Document.write(a + (3 + 3) + b);

Dette udtryk forbinder strengen "a", resultatet af udtrykket "3 + 3" og "b", hvilket resulterer i: "Hej verden!6 Jeg er studerende. "

indeks af

En af de mest anvendte indbyggede metoder er "indexOf". Hvert tegn har sit eget indeks, der indeholder nummeret på dets position på linjen. Bemærk, at indekset for det første tegn er 0, det andet er 1 osv. Indekset for tegnet "w" i strengen "a" er således 6.

Ved at bruge "indexOf" kan vi udskrive indekset for et tegn. Skriv ".indexOf(" ")" efter linjenavnet og indsæt det tegn du leder efter mellem anførselstegnene. For eksempel:

Var a = "Hej verden!"; document.write(a.indexOf("w"));

vender tilbage 6. Hvis et tegn forekommer flere gange, returnerer denne metode den første forekomst. Det er

Document.write(a.indexOf("o"));

vil returnere 4, fordi det er indekset for det første "o" i strengen.

Du kan også søge efter en kombination af symboler. (Dette er selvfølgelig også en streng, men for at undgå forvirring vil jeg ikke kalde det det). "indexOf" returnerer placeringen af ​​det første tegn i kombinationen. For eksempel:

Document.write(a.indexOf("o w"));

vil også returnere 4, fordi det er indekset for "o".

Desuden er det muligt at søge efter et tegn efter et bestemt indeks. Hvis du kommer ind

Document.write(a.indexOf("o", 5));

så får du indekset for det første "o" efter tegnet med indeks 5 (dette er et mellemrum), dvs. resultatet bliver 7 .

Hvis tegnet eller kombinationen ikke forekommer i strengen, vil "indexOf" returnere "-1". Dette er i bund og grund den mest populære brug af "indexOf": at kontrollere, om der findes en bestemt kombination af tegn. Det er kernen i scriptet, der definerer browseren. For at definere IE tager du linjen:

Navigator.userAgent;

og tjek om den indeholder "MSIE":

If(navigator.userAgent.indexOf("MSIE") != -1) ( //Enhver handling med Internet Explorer)

Hvis indekset for "MSIE" ikke er "-1" (hvis "MSIE" forekommer hvor som helst i linjen), så er den aktuelle browser IE.

lastIndexOf

Der er også en "lastIndexOf"-metode, der returnerer den sidste forekomst af et tegn eller en kombination. Det gør det modsatte af "indexOf". Hold

Var b = "Jeg er studerende."; document.write(b.lastIndexOf("t"));

vil returnere 13, fordi det er indekset for det sidste "t" i strengen.

tegnAt

"charAt"-metoden returnerer tegnet på den angivne position. For eksempel når du kommer ind

Var b = "Jeg er studerende."; document.write(b.charAt(5));

resultatet er "a", da det er tegnet i sjette position (husk at indekset for det første tegn starter ved 0).

længde

"Længde"-metoden returnerer længden af ​​strengen.

Var b = "Jeg er studerende."; document.write(b.length);

vil returnere "15". Længden af ​​strengen er 1 større end indekset for det sidste tegn.

dele

"split" er en speciel metode, der giver dig mulighed for at opdele en streng på bestemte tegn. Bruges, når resultatet skal gemmes i et array i stedet for i en simpel variabel. Lad os opdele "b" med mellemrum:

Var b = "Jeg er studerende." var temp = new Array(); temp = b.split(" ");

Nu er strengen opdelt i 4 understrenge, som placeres i "temp"-arrayet. Selve rummene er forsvundet.

Temp = "I"; temp = "am"; temp = "a"; temp = "elev";

"Substring"-metoden bruges til at trække en del af en streng fra. Metodesyntaks: ".substring(første_indeks, sidste_indeks)". For eksempel:

Var a = "Hej verden!"; document.write(a.substring(4, 8));

vil returnere "o wo", fra det første "o" (indeks 4) til det andet (indeks 7). Bemærk, at "r" (indeks 8) ikke er en del af understrengen.

Du kan også skrive:

Var a = "Hej verden!"; document.write(a.substring(4));

Dette vil give hele understrengen "o verden! ", startende fra tegnet med indeks 4 til slutningen af ​​linjen.

substr

Der er også en "substr" metode, der virker lidt anderledes. Den bruger ikke indeksnummeret som det andet argument, men antallet af tegn. Det er

Document.write(a.substr(4, 8));

returnerer 8 tegn, startende fra tegnet ved indeks 4 ("o"), dvs. resultatet er: " o verden! »

toLowerCase og toUpperCase

Endelig 2 metoder, der nogle gange kan være nyttige for dig: "toLowerCase" konverterer hele strengen til små bogstaver, og "toUpperCase" konverterer den til store bogstaver.

Var b = "Jeg er studerende."; document.write(b.toUpperCase());

Som et resultat får vi "JEG ER STUDENT. "

Objektorienterede evner og associative arrays JavaScript, som en semantisk "ramme" til brug af funktioner og konstruktioner til behandling af strenge, er af særlig interesse for programmering af baseret på dets semantiske indhold. På tungen JavaScript-funktioner operationer med strenge kan kombineres til dine egne semantiske konstruktioner, hvilket forenkler koden og formaliserer emneområde opgaver.

I den klassiske version er informationsbehandling først og fremmest, strengfunktioner. Hver funktion og konstruktion af sproget har sine egne karakteristika i JavaScripts syntaks og semantik. Metoderne til at arbejde med strenge her har deres egen stil, men i almindelig brug er det kun syntaks inden for simpel semantik: søg, erstat, indsæt, udtræk, indhold, skift store og små bogstaver...

Beskrivelse af strengvariabler

Var-konstruktionen bruges til at erklære en streng. Du kan straks indstille dens værdi eller generere den under udførelsen af ​​algoritmen. Du kan bruge enkelte eller dobbelte anførselstegn til en streng. Hvis det skal indeholde et anførselstegn, skal det escapes med tegnet "".

En streng, der er angivet med dobbelte anførselstegn, kræver, at man undslipper de indre dobbelte anførselstegn. Ligeledes er den, der er markeret med enkelte citater, afgørende for tilstedeværelsen af ​​enkelte citater indeni.

I i dette eksempel linjen "str_dbl" viser nyttige Særlige symboler, som kan bruges i en snor. I dette tilfælde er selve ""-tegnet escaped.

En streng er altid en matrix

JavaScript kan arbejde med strenge på en række forskellige måder. Sprogsyntaksen giver mange muligheder. Først og fremmest må man aldrig glemme det (i forbindelse med beskrivelserne):

  • str_isV => "V";
  • str_chr => "'";
  • str_dbl => "a".

Det vil sige, at tegnene i en streng er tilgængelige som array-elementer, hvor hvert specialtegn er ét tegn. Undslippe er et element i syntaks. Ingen "skærm" er placeret på den faktiske linje.

Brug af charAt()-funktionen har en lignende effekt:

  • str_isV.charAt(3) => "V";
  • str_chr.charAt(1) => "'";
  • str_dbl.charAt(5) => "a".

Programmøren kan bruge enhver mulighed.

Grundlæggende strengfunktioner

JavaScript håndterer strenge lidt anderledes end andre sprog. Navnet på variablen (eller selve strengen) efterfølges af navnet på funktionen, adskilt af en prik. Typisk kaldes strengfunktioner metoder i stil med sprogsyntaks, men det første ord er mere velkendt.

Den vigtigste metode til en streng (mere korrekt, en egenskab) er dens længde.

  • var xStr = str_isV.length + '/' + str_chr.length + '/' + str_dbl.length.

Resultat: 11/12/175 ifølge linjerne i ovenstående beskrivelse.

Det vigtigste par strengfunktioner er at opdele en streng i et array af elementer og flette arrayet til en streng:

  • split(s [, l]);
  • tilslutte sig(e).

I det første tilfælde opdeles strengen ved afgrænsningstegnet "s" i en række elementer, hvor antallet af elementer ikke overstiger værdien "l". Hvis mængden ikke er angivet, brydes hele linjen.

I det andet tilfælde flettes arrayet af elementer til én linje gennem en given afgrænsning.

Et bemærkelsesværdigt træk ved dette par: opdeling kan udføres ved hjælp af en separator, og sammenlægning kan udføres ved hjælp af en anden. I denne sammenhæng kan JavaScript arbejde med strenge "uden for" sprogets syntaks.

Klassiske strengfunktioner

Almindelige strengbehandlingsfunktioner:

  • Søg;
  • prøve;
  • udskiftning;
  • transformation.

Repræsenteret af metoder: indexOf(), lastIndexOf(), substr(), substring(), toLowerCase(), toUpperCase(), concan(), charCodeAt() og andre.

I JavaScript er arbejdet med strenge repræsenteret af en lang række funktioner, men de dublerer enten hinanden eller er overladt til gamle algoritmer og kompatibilitet.

For eksempel er det acceptabelt at bruge concat() metoden, men det er lettere at skrive:

  • str = str1 + str2 + str3;

Det giver også mening at bruge charAt()-funktionen, men at bruge charCodeAt() har virkelig praktisk betydning. Tilsvarende har et linjeskift en særlig betydning for JavaScript: i forbindelse med visning af f.eks. en alert()-meddelelse er det "n"; i en sider det "
" I det første tilfælde er det kun et tegn, og i det andet er det en streng af tegn.

Stryge og regulære udtryk

I JavaScript inkluderer arbejde med strenge en regulært udtryksmekanisme. Dette gør det muligt at udføre komplekse søgninger, hentning og strengkonverteringer i browseren uden at kontakte serveren.

Matchmetoden finder og erstatter det fundne match den ønskede værdi. Regulære udtryk er implementeret i JavaScript i højt niveau, i det væsentlige er komplekse, og på grund af applikationens detaljer overfører de tyngdepunktet fra serveren til klientens browser.

Når du bruger match-, søg- og erstatningsmetoderne, bør du ikke kun være opmærksom på test på tværs af hele spektret acceptable værdier indledende parametre og søgestrenge, men også evaluere belastningen på browseren.

Eksempler på regulære udtryk

Omfanget af regulære udtryk til behandling af strenge er omfattende, men kræver stor omhu og opmærksomhed fra udvikleren. Først og fremmest bruges regulære udtryk, når man tester brugerinput i formularfelter.

Her er funktioner, der kontrollerer, om inputtet indeholder et heltal (schInt) eller et reelt tal (schReal). Følgende eksempel viser, hvor effektivt det er at behandle strenge ved kun at kontrollere dem for gyldige tegn: schText - kun tekst, schMail - korrekt adresse E-mail.

Det er meget vigtigt at huske på, at i JavaScript kræver tegn og strenge øget opmærksomhed på lokalitet, især når du skal arbejde med kyrillisk. I mange tilfælde er det tilrådeligt at specificere de faktiske tegnkoder i stedet for deres betydning. Dette gælder primært russiske bogstaver.

Det skal især bemærkes, at det ikke altid er nødvendigt at udføre opgaven, som den er sat. Især med hensyn til kontrol af heltal og reelle tal: du kan klare dig ikke med klassiske strengmetoder, men med almindelige syntakskonstruktioner.

Objektorienterede strenge

I JavaScript præsenteres arbejdet med strenge bredt udvalg funktioner. Men dette er ikke en god grund til at bruge dem i deres oprindelige form. Syntaksen og kvaliteten af ​​funktionerne er upåklagelig, men det er en one-size-fits-all-løsning.

Enhver brug af strengfunktioner involverer behandling af den virkelige betydning, som bestemmes af dataene, anvendelsesomfanget og det specifikke formål med algoritmen.

Den ideelle løsning er altid at fortolke data for deres betydning.

Ved at repræsentere hver parameter som et objekt kan du formulere funktioner til at arbejde med det. Vi taler altid om at behandle symboler: tal eller strenge er sekvenser af symboler organiseret på en bestemt måde.

Spise generelle algoritmer, og der er private. For eksempel er et efternavn eller husnummer strenge, men hvis i det første tilfælde kun er russiske bogstaver tilladt, så er russiske bogstaver i det andet tilfælde tilladt, og der kan være bindestreger eller indeks adskilt af en skråstreg. Indekser kan være alfabetiske eller numeriske. Huset kan have bygninger.

Det er ikke altid muligt at forudse alle situationer. Det her vigtigt punkt i programmering. Det er sjældent, at en algoritme ikke kræver modifikation, og i de fleste tilfælde er det nødvendigt at justere funktionaliteten systematisk.

Formalisering af den behandlede linjeinformation i form af et objekt forbedrer kodens læsbarhed og gør det muligt at bringe den til niveauet for semantisk behandling. Dette er en anden grad af funktionalitet og betydeligt bedste kvalitet kode med større pålidelighed af den udviklede algoritme.

Som semantiske "rammer" for brug af funktioner og konstruktioner til behandling af strenge er de af særlig interesse for programmering af i henhold til dets semantiske indhold. På JavaScript Funktioner til at arbejde med strenge kan kombineres til deres egne semantiske konstruktioner, hvilket forenkler koden og formaliserer opgavens emneområde.

I den klassiske version er informationsbehandling primært strengfunktioner. Hver funktion og konstruktion af sproget har sine egne karakteristika i JavaScripts syntaks og semantik. Metoderne til at arbejde med strenge her har deres egen stil, men i almindelig brug er det kun syntaks indenfor simpel semantik: søg, erstat, indsættelse, udtrækning, konnotation, skift store og små bogstaver...

Beskrivelse af strengvariabler

For at erklære en streng skal du bruge konstruktionen var. Du kan straks indstille dens værdi eller generere den under udførelsen af ​​algoritmen. Du kan bruge enkelte eller dobbelte anførselstegn til en streng. Hvis det skal indeholde et anførselstegn, skal det escapes med tegnet "\".

Den angivne linje kræver, at man undslipper de interne dobbelte anførselstegn. Ligeledes er den, der er markeret med enkelte citater, afgørende for tilstedeværelsen af ​​enkelte citater indeni.

I dette eksempel viser strengen "str_dbl" nyttige specialtegn, der kan bruges i strengen. I dette tilfælde escapes selve tegnet "\".

En streng er altid en matrix

JavaScript kan arbejde med strenge på en række forskellige måder. Sprogsyntaksen giver mange muligheder. Først og fremmest må man aldrig glemme det (i forbindelse med beskrivelserne):

  • str_isV => "V";
  • str_chr => """;
  • str_dbl => "a".

Det vil sige, at tegnene i en streng er tilgængelige som array-elementer, hvor hvert specialtegn er ét tegn. Undslippe er et element i syntaks. Ingen "skærm" er placeret på den faktiske linje.

Brug af charAt()-funktionen har en lignende effekt:

  • str_isV.charAt(3) => "V";
  • str_chr.charAt(1) => """;
  • str_dbl.charAt(5) => "a".

Programmøren kan bruge enhver mulighed.

Grundlæggende strengfunktioner

I JavaScript gøres det lidt anderledes end på andre sprog. Navnet på variablen (eller selve strengen) efterfølges af navnet på funktionen, adskilt af en prik. Typisk kaldes strengfunktioner metoder i stil med sprogsyntaks, men det første ord er mere velkendt.

Den vigtigste metode til en streng (mere korrekt, en egenskab) er dens længde.

  • var xStr = str_isV.length + "/" + str_chr.length + "/" + str_dbl.length.

Resultat: 11/12/175 ifølge linjerne i ovenstående beskrivelse.

Det vigtigste par strengfunktioner er at opdele en streng i et array af elementer og flette arrayet til en streng:

  • split(s [, l]);
  • tilslutte sig(e).

I det første tilfælde opdeles strengen ved afgrænsningstegnet "s" i en række elementer, hvor antallet af elementer ikke overstiger værdien "l". Hvis mængden ikke er angivet, brydes hele linjen.

I det andet tilfælde flettes arrayet af elementer til én linje gennem en given afgrænsning.

Et bemærkelsesværdigt træk ved dette par: opdeling kan udføres ved hjælp af en separator, og sammenlægning kan udføres ved hjælp af en anden. I denne sammenhæng kan JavaScript arbejde med strenge "uden for" sprogets syntaks.

Klassiske strengfunktioner

Almindelige strengbehandlingsfunktioner:

  • Søg;
  • prøve;
  • udskiftning;
  • transformation.

Repræsenteret af metoder: indexOf(), lastIndexOf(), toLowerCase(), toUpperCase(), concan(), charCodeAt() og andre.

I JavaScript er arbejdet med strenge repræsenteret af en lang række funktioner, men de dublerer enten hinanden eller er overladt til gamle algoritmer og kompatibilitet.

For eksempel er det acceptabelt at bruge concat() metoden, men det er lettere at skrive:

  • str = str1 + str2 + str3;

Det giver også mening at bruge charAt()-funktionen, men at bruge charCodeAt() har virkelig praktisk betydning. Tilsvarende har et linjeskift en særlig betydning for JavaScript: i forbindelse med visning af f.eks. en advarsel()-meddelelse er det "\n", i en sider det "
" I det første tilfælde er det kun et tegn, og i det andet er det en streng af tegn.

Stryge og regulære udtryk

I JavaScript inkluderer arbejde med strenge en regulært udtryksmekanisme. Dette gør det muligt at udføre komplekse søgninger, hentning og strengkonverteringer i browseren uden at kontakte serveren.

Metode match finder, og erstatte erstatter det fundne match med den ønskede værdi. Regulære udtryk er implementeret i JavaScript på et højt niveau, er i sagens natur komplekse, og på grund af de specifikke applikationer overfører de tyngdepunktet fra serveren til klientens browser.

Ved anvendelse af metoder match, søg Og erstatte Du bør ikke kun være opmærksom på at teste over hele rækken af ​​acceptable værdier af de indledende parametre og søgestrenge, men også evaluere belastningen på browseren.

Eksempler på regulære udtryk

Omfanget af regulære udtryk til behandling af strenge er omfattende, men kræver stor omhu og opmærksomhed fra udvikleren. Først og fremmest bruges regulære udtryk, når man tester brugerinput i formularfelter.

Her er funktioner, der kontrollerer, om inputtet indeholder et heltal (schInt) eller et reelt tal (schReal). Følgende eksempel viser, hvor effektivt det er at behandle strenge ved kun at kontrollere dem for gyldige tegn: schText - kun tekst, schMail - gyldig e-mailadresse.

Det er meget vigtigt at huske på, at i JavaScript kræver tegn og strenge øget opmærksomhed på lokalitet, især når du skal arbejde med kyrillisk. I mange tilfælde er det tilrådeligt at specificere de faktiske tegnkoder i stedet for deres betydning. Dette gælder primært russiske bogstaver.

Det skal især bemærkes, at det ikke altid er nødvendigt at udføre opgaven, som den er sat. Især med hensyn til kontrol af heltal og reelle tal: du kan klare dig ikke med klassiske strengmetoder, men med almindelige syntakskonstruktioner.

Objektorienterede strenge

I JavaScript er arbejde med strenge repræsenteret af en lang række funktioner. Men dette er ikke en god grund til at bruge dem i deres oprindelige form. Syntaksen og kvaliteten af ​​funktionerne er upåklagelig, men det er en one-size-fits-all-løsning.

Enhver brug af strengfunktioner involverer behandling af den virkelige betydning, som bestemmes af dataene, anvendelsesomfanget og det specifikke formål med algoritmen.

Den ideelle løsning er altid at fortolke data for deres betydning.

Ved at repræsentere hver parameter som et objekt kan du formulere funktioner til at arbejde med det. Vi taler altid om at behandle symboler: tal eller strenge er sekvenser af symboler organiseret på en bestemt måde.

Der er generelle algoritmer, og der er private. For eksempel er et efternavn eller husnummer strenge, men hvis i det første tilfælde kun er russiske bogstaver tilladt, så er russiske bogstaver i det andet tilfælde tilladt, og der kan være bindestreger eller indeks adskilt af en skråstreg. Indekser kan være alfabetiske eller numeriske. Huset kan have bygninger.

Det er ikke altid muligt at forudse alle situationer. Dette er et vigtigt punkt i programmering. Det er sjældent, at en algoritme ikke kræver modifikation, og i de fleste tilfælde er det nødvendigt at justere funktionaliteten systematisk.

Formalisering af den behandlede linjeinformation i form af et objekt forbedrer kodens læsbarhed og gør det muligt at bringe den til niveauet for semantisk behandling. Dette er en anden grad af funktionalitet og væsentlig bedre kodekvalitet med større pålidelighed af den udviklede algoritme.

Fra forfatteren: Hilsen venner. I flere tidligere artikler har vi stiftet bekendtskab med numerisk type data i JavaScript og arbejdet med tal. Nu er det tid til at arbejde med strenge i JavaScript. Lad os se nærmere på strengdatatypen i JavaScript.

Vi har allerede kort stiftet bekendtskab med strengtypen og faktisk lærte vi kun, hvad en streng er, og hvordan den er skrevet. Lad os nu se nærmere på strenge og metoder til at arbejde med dem.

Som du husker, er enhver tekst i JavaScript en streng. Strengen skal være omgivet af anførselstegn, enkelt eller dobbelt, det gør ingen forskel:

var hej = "hej", navn = "John";

var hej = "hej" ,

navn = "John" ;

Nu har vi kun skrevet ét ord ind i variablerne. Men hvad nu hvis vi vil optage en stor mængde tekst? Ja, intet problem, lad os skrive noget fisketekst ind i en variabel og udlæse den til konsollen:

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimos maxime et tempore omnis, ab fugit. Quos nisi, culpa exercitationem!"; console.log(tekst);

var tekst = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimos maxime et tempore omnis, ab fugit. Quos nisi, culpa exercitationem!";

konsol. log(tekst);

Arbejder. Men hvis der er meget tekst, vil vi nok have linjeskift til at starte med nyt stk en ny linje. Lad os prøve at tilføje et linjeskift som dette til vores tekst:

Som du kan se, min tekst editor allerede fremhævet med rødt muligt problem. Lad os se, hvordan browseren reagerer på et linjeskift i denne fortolkning:

Syntaks fejl, som forventet. Hvordan skal man være? Der er flere måder at gemme tekst med flere linjer i en variabel. Du har måske allerede gættet om en af ​​dem, vi taler om strengsammenkædning:

Som du kan se, reagerer editoren allerede normalt på denne mulighed for at skrive en streng til en variabel. En anden mulighed er at bruge omvendt skråstreg (\), som i JavaScript og mange andre programmeringssprog er et escape-tegn, der giver dig mulighed for sikkert at arbejde med specialtegn. Vi vil lære, hvad specialtegn er yderligere. Så lad os prøve at screene usynligt symbol linjefeed:

Afskærmning løste også vores problem. Men hvis vi ser på konsollen, løste både strengsammenkædning og linjeskift, mens man løste problemet med at skrive til programmet, ikke problemet med at vise en flerlinjet streng på skærmen. I stedet for en flerlinjet linje, vil vi se en-linje tekst i konsollen. Hvad skal jeg gøre?

Og her vil det specielle nylinjekarakter hjælpe os - \n. Ved at tilføje dette specialtegn til en streng i på det rigtige sted, vil vi bede tolken om at afslutte på dette tidspunkt nuværende linje og foretage overgangen til ny linje.

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimos maxime et tempore omnis, ab fugit.\nQuos nisi, culpa exercitationem!"; console.log(tekst);

var tekst = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimos maxime et tempore omnis, ab fugit.\

"Quos nisi, culpa exercitationem!";

konsol. log(tekst);

Faktisk, hvis du ikke har noget imod at skrive teksten i koden på én linje, så kan vi gøre det sådan her:

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimos maxime et tempore omnis, ab fugit.\nQuos nisi, culpa exercitationem!"; console.log(tekst);

var tekst = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis dignissimos maxime et tempore omnis, ab fugit.\nQuos nisi, culpa exercitationem!";

konsol. log(tekst);

Resultatet på skærmen ændres ikke; vi vil se tekst med flere linjer i browserkonsollen:

Vi har virkelig ikke brug for backslash escape-tegnet i koden i denne situation. Men det er faktisk nødvendigt, som nævnt ovenfor, for at undslippe specialtegn. For eksempel, inde i en streng, som vi omsluttede i enkelte anførselstegn, er der en apostrof, dvs. enkelt citat:

var text = "Lorem ipsum d"olor sit amet";

Hilsen alle, der grundigt har besluttet at lære et prototype-orienteret sprog. Sidste gang fortalte jeg dig om det, og i dag vil vi se på JavaScript-strenge. Da alle tekstelementer på dette sprog er strenge (der er ikke noget separat format for tegn), kan du gætte, hvad dette afsnit fylder væsentlig del i at lære js-syntaks.

Derfor vil jeg i denne publikation fortælle dig, hvordan strengelementer oprettes, hvilke metoder og egenskaber der er tilvejebragt for dem, hvordan man korrekt konverterer strenge, for eksempel konverterer til et tal, hvordan du kan udtrække den ønskede understreng og meget mere. Udover dette vil jeg vedhæfte eksempler programkode. Lad os nu gå i gang!

Streng variabel syntaks

I sproget js erklæres alle variable ved hjælp af søgeord var, og derefter, afhængigt af formatet af parametrene, bestemmes typen af ​​den erklærede variabel. Som du husker fra JavaScript, er der ingen stærk skrivning. Det er derfor, denne situation eksisterer i koden.

Ved initialisering variable værdier kan indrammes i dobbelt, enkelt og fra 2015 i skæve enkelt citater. Nedenfor har jeg vedhæftet eksempler på hver metode til at erklære strenge.

Jeg vil være særlig opmærksom på den tredje metode. Det har en række fordele.

Med dens hjælp kan du nemt udføre et linjeskift, og det vil se sådan ud:

advarsel(`flere

Jeg flytter

Og den tredje metode giver dig mulighed for at bruge $(...)-konstruktionen. Dette værktøj er nødvendigt for at indsætte interpolation. Bliv ikke bange, nu skal jeg fortælle dig, hvad det er.

Takket være $(...) kan du ikke kun indsætte værdierne af variabler i linjer, men også udføre aritmetik og logiske operationer, opkaldsmetoder, funktioner mv. Alt dette kaldes ét led - interpolation. Se et eksempel på implementering af denne tilgang.

1 2 3 var pen = 3; var blyant = 1; alert(`$(pen) + $(blyant*5) = $(pen + blyant)`);

var pen = 3; var blyant = 1; alert(`$(pen) + $(blyant*5) = $(pen + blyant)`);

Som et resultat vil udtrykket "3 + 1*5 = 8" blive vist på skærmen.

Hvad angår de to første måder at erklære strenge på, er der ingen forskel på dem.

Lad os tale lidt om specielle karakterer

Mange programmeringssprog har specialtegn, der hjælper med at manipulere tekst i strenge. Den mest berømte blandt dem er linjeskift (\n).

Alle lignende værktøjer begynder i starten med en omvendt skråstreg (\) og efterfølges af bogstaver i det engelske alfabet.

Nedenfor har jeg vedhæftet en lille tabel, der viser nogle specialtegn.

Vi lagerfører et tungt arsenal af metoder og egenskaber

Sprogudviklerne leverede mange metoder og egenskaber til at forenkle og optimere arbejdet med strenge. Og med udgivelsen af ​​en ny standard kaldet ES-2015 sidste år, blev denne liste fyldt op med nye værktøjer.

Længde

Jeg starter med den mest populære egenskab, som hjælper med at finde ud af længden af ​​værdierne af strengvariabler. Det her længde. Det bruges på denne måde:

var string = "Enhjørninger";

alarm(streng.længde);

Svaret vil vise tallet 9. Også denne ejendom kan anvendes på værdierne selv:

"Enhjørninger".length;

Resultatet vil ikke ændre sig.

charAt()

Denne metode giver dig mulighed for at udtrække et bestemt tegn fra tekst. Lad mig minde dig om, at nummerering starter fra nul, så for at udtrække det første tegn fra en streng, skal du skrive følgende kommandoer:

var string = "Enhjørninger";

alert(string.charAt(0));.

Det resulterende resultat vil dog ikke være en tegntype; det vil stadig blive betragtet som en enkeltbogstavsstreng.

Fra toLowerCase() til UpperCase()

Disse metoder styrer bogstavernes store og små bogstaver. Når du skriver koden "Indhold".

toUpperCase() hele ordet vises med store bogstaver.

For den modsatte effekt skal du bruge "Indhold". toLowerCase().

indeks af()

Et populært og nødvendigt værktøj til at søge efter understrenge. Som argument skal du indtaste det ord eller den sætning, du vil finde, og metoden returnerer positionen for det fundne element. Hvis den søgte tekst ikke blev fundet, vil "-1" blive returneret til brugeren.

1 2 3 4 var text = "Organiser en blomstersøgning!"; alert(text.indexOf("farve")); //19 alert(text.indexOf(" ")); //12 alert(text.lastIndexOf(" ")); //18

var text = "Organiser en blomstersøgning!"; alert(text.indexOf("farve")); //19 alert(text.indexOf(" ")); //12 alert(text.lastIndexOf(" ")); //18

Bemærk, at lastIndexOf() gør det samme, kun det søger fra slutningen af ​​sætningen.

Substring ekstraktion

Til denne handling blev der oprettet tre omtrent identiske metoder i js.

Lad os se på det først understreng (start, slutning) Og skive (start, slut). De fungerer det samme. Det første argument definerer startpositionen, hvorfra udtrækningen vil begynde, og det andet er ansvarlig for det endelige stoppunkt. I begge metoder udtrækkes strengen uden at inkludere det tegn, der er placeret i slutpositionen.

var text = "Atmosfære"; alert(tekst.understreng(4)); // vil vise "sphere" advarsel(text.substring(2, 5)); //display "mos" alert(text.slice(2, 5)); //viser "mos"

Lad os nu se på den tredje metode, som kaldes substr(). Det skal også indeholde 2 argumenter: Start Og længde.

Den første angiver startpositionen, og den anden angiver antallet af tegn, der skal udtrækkes. For at spore forskellene mellem disse tre værktøjer brugte jeg det forrige eksempel.

var text = "Atmosfære";

alert(text.substr(2, 5)); //viser "mosfe"

Ved at bruge de anførte midler til at tage understrenge kan du fjerne unødvendige tegn fra nye inline elementer, som programmet så arbejder med.

Svar()

Denne metode hjælper med at erstatte tegn og understrenge i tekst. Det kan også bruges til at implementere globale erstatninger, men for at gøre dette skal du inkludere regulære udtryk.

Dette eksempel erstatter kun understrengen i det første ord.

var text = "Atmosfære Atmosfære"; var newText = text.replace("Atmo","Strato") alert(newText) // Resultat: Stratosfæreatmosfære

Og i denne softwareimplementering, på grund af flaget almindelig udtryk"g" vil blive erstattet globalt.

var text = "Atmosfære Atmosfære"; var newText = text.replace(/Atmo/g,"Strato") alert(newText) // Resultat: Stratosphere Stratosphere

Lad os lave konverteringen

JavaScript giver kun tre typer objekttypekonvertering:

  1. Numerisk;
  2. Snor;
  3. Boolean.

I den aktuelle publikation vil jeg tale om 2 af dem, da viden om dem er mere nødvendig for at arbejde med strenge.

Numerisk konvertering

For eksplicit at konvertere et elements værdi til en numerisk form, kan du bruge Antal (værdi).

Der er også et kortere udtryk: +"999".

var a = Tal("999");

Strengkonvertering

Udføres af funktionen alert, samt et eksplicit opkald Streng (tekst).

1 2 3 alert (999+ "superpris") var text = String(999) alert(text === "999");

alert (999+ "superpris") var text = String(999) alert(text === "999");

På denne note besluttede jeg at afslutte mit arbejde. Abonner på min blog og glem ikke at dele linket til den med dine venner. Jeg ønsker dig held og lykke med dine studier. Hej hej!

Med venlig hilsen Roman Chueshov

Læs: 130 gange