Javascript-radterminatortecken. Standardsträngobjektmetoder


Den här artikeln kommer att diskutera vad som är   javascript strängar  och metoder för att arbeta med dem.

Strängar är bara grupper av tecken, till exempel JavaScript, hej värld! "," Http://www.quirksmode.org "eller till och med" 14 ". För att programmera i JavaScript måste du veta vad strängar är och hur man arbetar med dem, eftersom du måste använda dem ofta. Många saker, till exempel URL-sidor, CSS-parametervärden och formulärinmatningselement, är alla strängar.

Jag försöker förklara först   arbeta med strängar, då skillnaden mellan JavaScript. Även om du har erfarenhet av att programmera på ett annat språk, läs den här delen noggrant. Till slut kommer jag att prata om det viktigaste   javascript strängar.

Grunderna i strängen

Låt oss titta på grunderna i att arbeta med strängar i JavaScript.

Med citat

När du meddelar javascript strängar  eller om du arbetar med dem, bifoga dem alltid i enstaka eller dubbla citat. Detta förklarar för webbläsaren att det handlar om en sträng. Blanda inte användningen av citattecken i koden, om du startade raden med en enda offert och slutade med en dubbelcitationstecken, förstår JavaScript inte vad du hade i åtanke. Som regel använder jag enstaka citat för att arbeta med strängar, eftersom jag bestämde mig för att använda dubbla citat för HTML och enstaka citat för JavaScript. Naturligtvis kan du göra saker annorlunda, men jag rekommenderar att du tar upp en liknande regel för dig själv.

Låt oss presentera två rader som vi kommer att använda i hela artikeln:

Var a \u003d "Hej värld!"; var b \u003d "Jag är student.";

Vi har nu deklarerat två variabler, "a" och "b," och tilldelat dem strängvärden. Efter det kan vi arbeta med dem, men först löser vi ett problem: låt oss säga att jag skrev:

Var b \u003d "Jag är en student.";

Strängen innehåller en extra enstaka offert, och JavaScript tror att strängen är klar och visar ett felmeddelande utan att förstå vad som följer. Därför behöver du flykt offert, berättar för webbläsaren att den bör betraktas som ett tecken och inte som slutet på en rad. Detta görs med hjälp av en backslash innan offerten:

Var b \u003d "Jag är en student.";

Observera att du kan infoga dubbla citat i en sträng utan att undgå dem. Eftersom du använder enstaka citat som början och slutet på en rad,

Var b \u003d "Jag \\" m en "student". ";

uppfattas utan problem. Dubbla citat behandlas automatiskt som en del av en sträng, inte ett kommando.

Inbyggda funktioner

När du har definierat strängarna kan du börja använda dem. Till exempel kan du anslut en linje till en annaneller ta från strängen "b" en substring bestående av andra och fjärde tecknen och infoga dem i mitten av strängen "a", eller avgöra vilket tecken som är den tolfte i "a", hur många tecken i "b", om det finns en bokstav q ”, etc.

För att göra detta kan du använda de inbyggda funktionerna som JavaScript fördefinierar för varje rad. En av dem - "längd" - returnerar längden på strängen. Det vill säga, om du vill beräkna längden på "Hej värld!", Skriv:

Var c \u003d "Hej värld!". Längd;

Tidigare tilldelade vi denna rad till variabeln "a". Således gjorde du variabeln "a" till en sträng, så funktionen "längd" är också tillämplig på den, och följande operation ger samma resultat:

Var c \u003d a. Längd;

Kom ihåg att du kan använda "längd" för vilken sträng som helst - det här är en inbyggd funktion. Du kan beräkna längden på vilken sträng som helst, till exempel: "location.href" eller "document.title" eller som meddelats av dig.

Nedan ger jag en lista över vanliga inbyggda metoder och egenskaper.

Linjer och siffror

På vissa programmeringsspråk måste du ange om en variabel är ett nummer eller en sträng innan du gör något annat med det. JavaScript är lättare att relatera till skillnaden mellan strängar och siffror. Du kan till och med lägga till nummer med strängar:

Var c \u003d a + 12;

På vissa programmeringsspråk kommer bearbetning av en sådan sträng att resultera i ett fel. Fortfarande är "a" en sträng och "12" är ett nummer. JavaScript försöker dock lösa problemet, förutsatt att ”12” också är en sträng. Således tar "c" värdet "Hej värld! 12". Så om du använder "+" med en sträng och ett nummer försöker JavaScript skapa en sträng av numret. Om du tillämpar matematiska operationer på en sträng försöker JavaScript förvandla den till ett nummer. Om det inte är möjligt att översätta en sträng till ett nummer (till exempel på grund av närvaron av bokstäver i den) returnerar JavaScript NaN - "Inte ett nummer - är inte ett nummer."

Slutligen, i JavaScript, finns det ingen skillnad mellan heltal och flytande punktnummer.

Antal → Sträng

för konvertera ett nummer till en sträng  ange:

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

Efter det kan du använda alla strängmetoder på “d”, och “c” innehåller fortfarande ett nummer.

Sträng -\u003e Antal

Om du vill konvertera en sträng till ett nummer måste du först se till att den endast består av tecken 0–9. För att göra detta multiplicerar jag helt enkelt strängen med 1.

Var c \u003d "1234"; d \u003d c * 1;

Eftersom multiplikation endast görs med siffror förvandlar JavaScript en sträng till ett nummer, om möjligt. Annars är resultatet NaN.

Observera om du skriver:

Var c \u003d "1234"; d \u003d c + 0;

Resultatet blir "12340" eftersom JavaScript använder en "+" för att sammanfoga strängar, inte lägga till dem ihop.

Strängegenskaper och metoder

Så vad kan vi göra med strängar? Att gå med är ett speciellt fall, men alla andra kommandon (metoder) kan användas med valfri sträng med konstruktionen:

Line_name.method ();

Lista över JavaScript-strängmetoder

Samkoppling - sammankoppling av sträng

För det första kan du kombinera raderna genom att sätta ihop dem så här:

Document.write (a + b);

resultatet är: "Hej värld! Jag är student. ". Men naturligtvis vill du ha ett avstånd mellan meningar. För att göra detta skriver vi koden enligt följande:

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

Så vi ansluter de tre linjerna: "a", "" "" (ett utrymme) och "b", så småningom får vi: "Hej värld! Jag är student. "

Du kan till och med använda siffror eller beräkningar, till exempel:

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

Nu ansluter vi strängen "a", sedan resultatet av uttrycket "3 * 3", betraktas som en sträng, och "b", och får: "Hej värld! 9 Jag är student. "

När du använder tillägg måste du vara försiktig. Teamet

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

sammanlänker 4 rader: "a", "3", "3" och "b", eftersom "+" i detta fall betyder "gå med linjer" och inte "lägga till" och som ett resultat: "Hej världen! 33 Jag är en student. ". Om du vill lägga till 3 och 3 innan du skapar en rad använder du parenteser.

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

Detta uttryck förbinder strängen "a", resultatet av uttrycket "3 + 3" och "b", som ett resultat: "Hej värld! 6 Jag är student. ".

indexOf

En av de mest använda inbyggda metoderna är "indexOf". Varje tecken har sitt eget index som innehåller numret på sin position i strängen. Observera att indexet för det första tecknet är 0, det andra är 1 osv. Således är indexet för tecknet "w" i termen "a" 6.

Med "indexOf" kan vi skriva ut teckens index. Skriv ".indexOf (" ") efter strängnamnet och sätt in det tecken du vill ha mellan citattecken. Till exempel:

Var a \u003d "Hej värld!"; document.write (a.indexOf ("w"));

kommer att returnera 6. Om ett tecken förekommer mer än en gång returnerar den här metoden den första händelsen. Det är det

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

kommer att returnera 4 eftersom det är indexet för den första "o" i strängen.

Du kan också söka efter en kombination av tecken. (Naturligtvis är detta också en sträng, men för att undvika förvirring kommer jag inte kalla det så). "IndexOf" returnerar positionen för kombinationens första tecken. Till exempel:

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

kommer också att returnera 4, eftersom det är indexet "o".

Dessutom är det möjligt att söka efter ett tecken efter ett specifikt index. Om du går in

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

få sedan indexet för den första "o" efter tecknet med index 5 (detta är ett mellanslag), det vill säga resultatet blir - 7.

Om tecknet eller kombinationen inte visas i strängen kommer "indexOf" att returnera "-1". Detta är i huvudsak den mest populära användningen av indexOf: kontrollera förekomsten av en viss kombination av tecken. Det är kärnan i skriptet som definierar webbläsaren. För att bestämma IE tar du raden:

navigator.userAgent;

och kontrollera om den innehåller "MSIE":

If (navigator.userAgent.indexOf ("MSIE")! \u003d -1) (// Eventuella åtgärder med Internet Explorer)

Om "MSIE" -indexet inte är "-1" (om "MSIE" finns någonstans på linjen), är den nuvarande webbläsaren IE.

lastIndexOf

Det finns också en lastIndexOf-metod som returnerar den sista förekomsten av ett tecken eller en kombination. Det verkar motsatsen till ”indexOf”. Teamet

Var b \u003d "Jag är student."; document.write (b.lastIndexOf ("t"));

kommer att returnera 13 eftersom detta är indexet för den sista "t" i strängen.

charAt

CharAt-metoden returnerar tecknet på den angivna positionen. Till exempel när du anger

Var b \u003d "Jag är student."; document.write (b.charAt (5));

resultatet är ”a”, eftersom det är ett tecken i sjätte position (kom ihåg att indexet för det första tecknet börjar på 0).

längd

Metoden "längd" returnerar strängens längd.

Var b \u003d "Jag är student."; document.write (b.length);

kommer att returnera "15". Stränglängden är 1 större än indexet för det sista tecknet.

split

"Split" är en speciell metod som låter dig dela en sträng med specifika tecken. Det används när resultatet måste matas in i en matris och inte i en enkel variabel. Låt oss dela upp "b" mellan mellanslag:

Var b \u003d "Jag är student." var temp \u003d new Array (); temp \u003d b.split ("");

Nu är strängen uppdelad i fyra underlag som placeras i matrisen "temp". Själva luckorna har försvunnit.

Temp \u003d "I"; temp \u003d "am"; temp \u003d "a"; temp \u003d "student";

Substringsmetoden används för att välja en del av en sträng. Metodsyntax: ".substring (first_index, last_index)". Till exempel:

Var a \u003d "Hej värld!"; document.write (a.substring (4, 8));

kommer att returnera "o wo", från det första "o" (index 4) till det andra (index 7). Observera att “r” (index 8) inte är en del av substrängen.

Du kan också skriva:

Var a \u003d "Hej värld!"; document.write (a.substring (4));

Detta kommer att ge hela substring "o världen! », Från karaktären med index 4 till slutet av raden.

substr

Det finns också en sub-metod som fungerar lite annorlunda. Som det andra argumentet använder det inte indexnumret utan antalet tecken. Det är det

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

returnerar 8 tecken, med början från tecknet med index 4 ("o"), det vill säga vi får: "o världen! "

toLowerCase och toUpperCase

Slutligen finns det två metoder som du kan hitta användbara ibland: "toLowerCase" konverterar hela strängen till små bokstäver och "toUpperCase" till versaler.

Var b \u003d "Jag är student."; document.write (b.toUpperCase ());

Som ett resultat får vi ”JAG ÄR EN STUDENT. ".

Som semantiska "ramar" för att använda funktioner och konstruktioner för bearbetning av strängar är de av särskilt intresse för programmering av baserat på dess semantiska innehåll. I JavaScript kan strängfunktioner kombineras till sina egna semantiska konstruktioner, förenkla koden och formalisera uppgiftens ämnesområde.

I den klassiska versionen är informationsbehandling först och främst strängfunktioner. Varje funktion och design av språket har sina egna egenskaper i JavaScript-syntax och semantik. Metoderna för att arbeta med strängar här har sin egen stil, men i den vanliga applikationen är det bara en syntax inom ramen för enkel semantik: sök, ersätt, infoga, extrahera, innehåll, ändra fall ...

Beskrivning av strängvariabler

För att deklarera en sträng använder du konstruktionen var.  Du kan omedelbart ställa in dess värde eller bilda det under körningen av algoritmen. Du kan använda enstaka eller dubbla citat för en sträng. Om det måste finnas ett citattecken i det, måste det rymmas med symbolen "\\".

Den angivna linjen kräver att de interna dubbla citaten undviks. På samma sätt är den som indikeras av singel kritisk för närvaron av enstaka citat inuti.

I det här exemplet listar strängen “str_dbl” användbara specialtecken som kan användas i strängen. I detta fall undviks symbolen "\\".

En sträng är alltid en matris

JavaScript kan fungera med strängar på många sätt. Språksyntaxen ger många alternativ. Först och främst bör man aldrig glömma det (i samband med beskrivningarna):

  • str_isV \u003d\u003e "V";
  • str_chr \u003d\u003e "" ";
  • str_dbl \u003d\u003e "a".

Det vill säga linjetecken är tillgängliga som element i en matris, där varje specialtecken är ett tecken. Rymning är ett syntaxelement. Ingen "skärm" placeras i den riktiga linjen.

Att använda charAt () -funktionen har en liknande effekt:

  • str_isV.charAt (3) \u003d\u003e "V";
  • str_chr.charAt (1) \u003d\u003e "" ";
  • str_dbl.charAt (5) \u003d\u003e "a".

Programmeraren kan använda valfritt alternativ.

Grundläggande strängfunktioner

JavaScript är något annorlunda än på andra språk. Namnet på variabeln (eller själva strängen) skrivs genom punkten med namnet på funktionen. Vanligtvis kallas strängfunktioner metoder i stil med språksyntax, men det första ordet är mer bekant.

Den viktigaste metoden för en sträng (mer korrekt, en egenskap) är dess längd.

  • var xStr \u003d str_isV.length + "/" + str_chr.length + "/" + str_dbl.length.

Resultat: 11/12/175 i raderna i ovanstående beskrivning.

Det viktigaste strängparfunktionerna är att dela en sträng i en rad element och slå samman matrisen till en sträng:

  • split (s [, l]);
  • gå med (er).

I det första fallet delas strängen av separatortecknet "s" i en grupp element där antalet element inte överskrider värdet "l". Om mängden inte är inställd, bryts hela linjen.

I det andra fallet sammanfogas matrisen av element till en rad genom den angivna avgränsaren.

En anmärkningsvärd egenskap hos detta par: delning kan göras enligt en separator och sammanslagning - enligt en annan. I detta sammanhang, i JavaScript, kan arbeta med strängar "skjuts utöver gränserna" för språksyntaxen.

Klassiska små bokstäver

Vanliga strängbehandlingsfunktioner:

  • söka;
  • prov;
  • utbyte;
  • omvandling.

Representeras med metoder: indexOf (), lastIndexOf (), toLowerCase (), toUpperCase (), concan (), charCodeAt () och andra.

I JavaScript representeras arbetet med strängar av ett stort antal funktioner, men de duplicerar antingen varandra eller lämnas kvar för gamla algoritmer och kompatibilitet.

Att till exempel använda metoden concat () är acceptabel, men det är lättare att skriva:

  • str \u003d str1 + str2 + str3;

Användningen av funktionen charAt () är också meningsfull, men användningen av charCodeAt () har verkligt praktiskt värde. På samma sätt, för JavaScript, har raderna en speciell betydelse: i samband med utgången till skärmen, till exempel i varning () -meddelandet, är detta "\\ n", i konstruktionen för att generera sidinnehåll är det
". I det första fallet är det bara en karaktär och i det andra en rad tecken.

Strängar och regelbundna uttryck

I JavaScript innehåller arbetet med strängar en vanlig expressionsmekanism. Detta gör att du kan utföra komplexa sökningar, markeringar och strängkonverteringar i webbläsaren utan att komma åt servern.

metod match  hittar och ersätta  ersätter den hittade matchen med det önskade värdet. Regelbundna uttryck implementeras i JavaScript på en hög nivå, i huvudsak är de komplexa, och på grund av programmets detaljer överför de tyngdpunkten från servern till klientens webbläsare.

Vid tillämpning av metoder matcha, sökoch   ersätta  du bör inte bara vara uppmärksam på att testa hela utbudet av acceptabla värden för de initiala parametrarna och de önskade linjerna, utan också utvärdera belastningen på webbläsaren.

Exempel på regelbundna uttryck

Regelbundna uttryck för strängbehandling är omfattande, men kräver stor noggrannhet och uppmärksamhet från utvecklaren. Bestämmelser används främst när man testar användarinmatning i formulärfält.

Här är de funktioner som kontrollerar om ingången innehåller ett heltal (schInt) eller ett verkligt nummer (schReal). Följande exempel visar hur effektivt det kan bearbeta strängar genom att endast kontrollera giltiga tecken: schText är endast text, schMail är rätt e-postadress.

Det är mycket viktigt att komma ihåg att i JavaScript kräver tecken och strängar ökad uppmärksamhet på landskapet, särskilt när du behöver arbeta med det kyrilliska alfabetet. I många fall är det lämpligt att ange riktiga karaktärskoder snarare än deras betydelse. Ryska bokstäver gäller detta i första hand.

Det bör särskilt noteras att det är långt ifrån alltid nödvändigt att utföra uppgiften som den är inställd. Speciellt när det gäller att kontrollera heltal och verkliga siffror: du kan inte klara dig med klassiska strängmetoder, utan med vanliga syntaxkonstruktioner.

Objektorienterade strängar

I JavaScript representeras strängmanipulation av ett brett spektrum av funktioner. Men detta är inte ett bra skäl för att använda dem i sin ursprungliga form. Syntaxen och kvaliteten på funktionerna är oklanderlig, men det är en universell lösning.

Varje tillämpning av strängfunktioner involverar bearbetning av den verkliga betydelsen, som bestäms av data, omfattning, algoritmens specifika syfte.

Den ideala lösningen är alltid att tolka uppgifterna enligt deras mening.

Som representerar varje parameter som ett objekt kan man formulera funktioner för att arbeta med den. Det handlar alltid om teckenbearbetning: siffror eller strängar är specifikt organiserade sekvenser med tecken.

Det finns allmänna algoritmer, men det finns privata. Till exempel är ett efternamn eller husnummer strängar, men om i första hand endast ryska bokstäver är tillåtna, i andra fall är siffror och ryska bokstäver tillåtna och bindestreck eller index kan visas genom en snedstreck. Index kan vara alfanumeriska. Ett hus kan ha byggnader.

Alla situationer kan inte alltid förutses. Detta är en viktig punkt i programmeringen. En sällsynt algoritm kräver inte förfining, och i de flesta fall är det nödvändigt att systematiskt justera funktionaliteten.

Formalisering av behandlad radinformation i form av ett objekt förbättrar koden läsbarhet, låter dig ta den till nivån för semantisk bearbetning. Detta är en annan grad av funktionalitet och betydligt bättre kodkvalitet med större tillförlitlighet för den utvecklade algoritmen.

Från författaren:  Jag välkomnar er, vänner. I flera tidigare artiklar blev du och jag bekanta med den numeriska datatypen i JavaScript och arbetade med siffror. Nu är det dags att arbeta med strängar i JavaScript. Låt oss titta närmare på strängdatatypen i JavaScript.

I dig och jag lärde vi redan slumpmässigt känna till typen av strängar och faktiskt hittade vi bara vad en sträng är och hur den är skriven. Låt oss nu titta närmare på strängarna och metoderna för att arbeta med dem.

Som ni kommer ihåg är all text i JavaScript en sträng. Strängen måste bifogas i citattecken, singel eller dubbel, ingen skillnad:

var hi \u003d "hej", namn \u003d "John";

var hej \u003d "hej",

namn \u003d "John";

Nu har vi bara skrivit ett ord i variablerna. Men vad händer om vi vill spela in en stor mängd text? Ja, inga problem, låt oss skriva lite fisktext i en variabel och skriva ut den på konsolen:

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisising elit. Nobis dignissimos maxime och tempore omnis, ab fugit. Quos nisi, culpa trainingit!"; console.log (text);

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisising elit. Nobis dignissimos maxime och tempore omnis, ab fugit. Quos nisi, culpa-utövning!";

konsolen. logg (text);

Det fungerar. Men om det finns mycket text kommer vi förmodligen att ha rader för att starta ett nytt stycke med en ny rad. Låt oss försöka lägga till en sådan radbrytning till vår text:

Som ni ser har min textredigerare redan markerat med rött ett möjligt problem. Låt oss se hur webbläsaren reagerar på radflöden i denna tolkning:

Syntaxfel, som förväntat. Hur ska jag vara? Det finns flera sätt att skriva flerspråkig text i en variabel. Du kan redan gissa en av dem, vi talar om strängtillkoppling:

Som ni ser svarar redaktören redan normalt på detta alternativ att skriva en sträng till en variabel. Ett annat alternativ är att använda en backslash (\\), som i JavaScript och i många andra programmeringsspråk är ett flyktecken som låter dig säkert arbeta med specialtecken. Vad är specialtecken kommer vi att lära oss senare. Så låt oss försöka undvika den osynliga radmatningen:

Avskärmning löste också vårt problem. Men om vi tittar på konsolen, så löste inte både sammanlänkningen av linjer och flykten av radflöden, efter att ha löst problemet med att skriva till programmet, problemet med att visa en flerstreckad linje på skärmen. I stället för en multiline-linje kommer vi att se i konsoltexten på en rad. Hur ska jag vara?

Och här kommer en speciell newline-karaktär - \\ n att hjälpa oss. Genom att lägga till denna specialtecken till linjen på rätt plats, kommer vi att säga tolkaren att på denna plats är det nödvändigt att slutföra den aktuella linjen och göra en övergång till en ny rad.

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisising elit. Nobis dignissimos maxime och tempore omnis, ab fugit. \\ \\ nQuos nisi, culpa trainingem!"; console.log (text);

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisising elit. Nobis dignissimos maxime och tempore omnis, ab fugit. \\

\\ nQuos nisi, culpa-träning! ";

konsolen. logg (text);

Egentligen, om du inte är förvirrad av att skriva text i kod på en rad, kan vi göra detta:

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisising elit. Nobis dignissimos maxime och tempore omnis, ab fugit. \\ nQuos nisi, culpa trainingem!"; console.log (text);

var text \u003d "Lorem ipsum dolor sit amet, consectetur adipisising elit. Nobis dignissimos maxime och tempore omnis, ab fugit. \\ NQuos nisi, culpa trainingit!";

konsolen. logg (text);

Resultatet på skärmen kommer inte att förändras från det här, vi ser multiline text i webbläsarkonsolen:

Vi behöver verkligen inte backslash-flykteckenet i koden i denna situation. Och han behöver verkligen, som nämnts ovan, för visning av specialtecken. Till exempel inuti strängen som vi bifogade i enstaka citat inträffar en apostrof, d.v.s. enda offert:

var text \u003d "Lorem ipsum d" olor sit amet ";

Det finns flera sätt att välja underlag i JavaScript, inklusive substring (), underlag (), skiva ()  och funktioner regexp.

I JavaScript 1.0 och 1.1, substring ()  finns som det enda enkla sättet att välja en del av en större sträng. Till exempel för att välja en rad tryck  från expressionanvändning "Expression" .snörsträng (2.7). Den första parametern för funktionen är det teckenindex där valet börjar, medan den andra parametern är teckenindexet där markeringen slutar (inte inklusive): substring (2.7)  inkluderar index 2, 3, 4, 5 och 6.

I JavaScript 1.2, funktioner underlag (), skiva ()  och regexp  kan också användas för att dela rader.

Substr ()  uppför sig på samma sätt som substr  Pärlspråk, där den första parametern anger det teckenindex där valet börjar, medan den andra parametern anger längden på understrängen. För att utföra samma uppgift som i föregående exempel måste du använda "Expression" .substr (2,5). Kom ihåg att 2 är startpunkten och 5 är längden på den resulterande substring.

När det används på strängar, skiva ()  uppför sig på samma sätt som funktion substring (). Detta är emellertid ett mycket kraftfullare verktyg som kan fungera med alla typer av array, och inte bara med strängar. skiva ()  använder också negativa förskjutningar för att komma åt önskad position, börjar i slutet av linjen. "Expression" .slice (2, -3)  kommer att returnera den substans som hittas mellan det andra tecknet och det tredje tecknet från slutet, åter igen tryckning.

Den sista och mest universella metoden för att arbeta med underlag är att arbeta genom vanliga uttrycksfunktioner i JavaScript 1.2. Återigen, uppmärksamma samma exempel och ersätt "Press"  erhållen från strängen "Expression":

Skriv ("Expression" .match (/ tryck /));

Inlineobjekt String

objekt String  Är ett objektimplementering av ett primitivt strängvärde. Dess konstruktör har formen:

Ny sträng ( betyder?)

här betyder  - alla stränguttryck som anger objektets primitiva värde. Om det inte anges är objektets primitiva värde "".

Strängobjektegenskaper:

constructor  Konstruktören som skapade objektet. Antalet tecken per rad. prototyp  Länk till prototypen för funktionsklassen.

Standardsträngobjektmetoder

Returnerar tecknet vid strängens givna position. Returnerar teckenkoden vid strängens givna position. Returnerar sammanlänkningen av strängar. Skapar en sträng tecken som anges av Unicode-koder. Returnerar positionen för den första förekomsten av den givna substrängen. Returnerar positionen för den sista förekomsten av den givna substrängen. Jämför två rader baserade på operativsystemets språk. Matchar en sträng med ett vanligt uttryck. Matchar en sträng med ett vanligt uttryck och ersätter den hittade substrängen med en ny substring. Söker efter matchande sträng med regex. Hämtar en del av en sträng och returnerar en ny sträng. Bryter en sträng i en rad underlag. Returnerar den underlag som anges efter position och längd. Returnerar den understräng som specificeras av start- och slutpositionerna. Konverterar alla bokstäver i en sträng till små bokstäver med hänsyn till operativsystemets språk. Konverterar alla bokstäver i strängen till versaler med hänsyn till operativsystemets språk. Konverterar alla bokstäver i en sträng till små bokstäver. Konverterar ett objekt till en sträng. Konverterar alla bokstäver i en sträng till versaler. Returnerar det primitiva värdet på ett objekt.

Anpassade metoder för String-objektet

    Skapar ett HTML-bokmärke ( …). Slår in en sträng i taggar …. Slår in en sträng i taggar …. Slår in en sträng i taggar …. Slår in en sträng i taggar …. Slår in en sträng i taggar …. Slår in en sträng i taggar …. Slår in en sträng i taggar …. Skapar en HTML-hyperlänk (...). Slår in en sträng i taggar …. Slår in en sträng i taggar …. Slår in en sträng i taggar …. Slår in en sträng i taggar ….

Längd egendom

syntax : objektet.length attribut: (DontEnum, DontDelete, ReadOnly)

Fastighetsvärde längd  är antalet tecken per rad. För en tom sträng är detta värde noll.

Förankringsmetod

syntax : objektet.anchor ( förnamn) argument: förnamn resultat: strängvärde

metod ankare objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Den här metoden används i samband med metoden document.write och document.writeln för att skapa bokmärken i HTML-dokumentet med det angivna med namn. Exempelvis är dokumentet.write ("Min text" .anchor ("Bokmärke")) motsvarande dokumentet.write (" Min text") .

Stor metod

syntax : objektet.stor () resultat: strängvärde

metod stor  returnerar en sträng bestående av objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i stort tryck. Exempelvis visar operatören document.write ("Min text" .big ()) strängen Min text på webbläsarens skärm.

Blink metod

syntax : objektet.blink () resultat: strängvärde

metod blinka  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar … . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i ett blinkande teckensnitt. Dessa taggar ingår inte i HTML-standarden och stöds endast av Netscape och WebTV. Exempelvis visar operatören document.write ("Min text". Blink ()) strängen Min text på webbläsarens skärm.

Fet metod

syntax : objektet. fet () resultat: strängvärde

metod fet  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i fetstil. Exempelvis visar operatören document.write ("Min text". Fet ()) en rad på webbläsarens skärm Min text .

CharAt-metod

syntax : objektet.charAt ( ställning) argument: ställning  - vilket numeriskt uttryck som helst resultat: strängvärde

metod charAt  returnerar en sträng som består av ett tecken som finns i en given positioner  primitivt värde sträng objekt. Teckenpositioner för en sträng numreras från noll till objektet. -1. Om positionen ligger utanför detta område returneras en tom sträng. Exempelvis visar operatören document.write ("String" .charAt (0)) C-tecknet på webbläsarens skärm.

CharCodeAt-metod

syntax : objektet.charCodeAt ( ställning) argument: ställning  - vilket numeriskt uttryck som helst resultat: numeriskt värde

metod charAt  returnerar ett nummer lika med Unicode-koden för ett tecken som finns i en given positioner  primitivt värde sträng objekt. Teckenpositioner för en sträng numreras från noll till objektet. -1. Om positionen ligger utanför detta intervall, återgår sedan NaN. Exempelvis visar operatören document.write ("String" .charCodeAt (0) .toString (16)) hexadecimal kod för den ryska bokstaven "C" på webbläsarens skärm: 421.

Concat-metod

syntax : objektet.concat ( stroka0, sträng1, …, strokaN) argument: stroka0, sträng1, …, strokaN  - alla stränguttryck resultat: strängvärde

metod concat  returnerar en ny sträng, som är sammanlänkningen av den ursprungliga strängen och metodargumenten. Denna metod motsvarar drift

objektet + stroka0 + sträng1 + … + strokaN

Till exempel, operatören document.write ("Frost och solen." .Concat ("Underbar dag.")) Visar raden Frost och solen på webbläsarens skärm. Det är en underbar dag.

Fast metod

syntax : objektet. fixad () resultat: strängvärde

metod fast  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i typsnitt. Exempelvis visar operatören document.write ("Min text" .fixerad ()) strängen Min text på webbläsarens skärm.

Fontfärgmetod

syntax : objektet.färg (färg) argument: färg  - stränguttryck resultat: strängvärde

metod fontcolor  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar färg>… . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i en given färg. Exempelvis visar operatören document.write ("Min text". Konturfärg ("röd")) strängen Min text på webbläsarens skärm.

Teckensnittmetod

syntax : objektet.formatstorlek ( storlek) argument: storlek  - numeriskt uttryck resultat: strängvärde

metod fontsize  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i ett teckensnitt av en viss storlek. Exempelvis visar dokumentet.write-uttalande (Min text. Formatstorlek (5)) strängen Min text på webbläsarens skärm.

FromCharCode-metoden

syntax : String.fromCharCode ( rC1, rc2, …, kodN) argument: rC1, rc2, …, kodN  - numeriska uttryck resultat: strängvärde

metod fromCharCode  skapar en ny sträng (men inte ett strängobjekt), som är en sammankoppling av Unicode-tecken med koder rC1, rc2, …, kodN.

Detta är en statisk metod för ett objekt. Stringdärför behöver du inte skapa ett strängobjekt för att komma åt det. Ett exempel:

Var s \u003d String.fromCharCode (65, 66, 67); // s är lika med "ABC"

IndexOf-metod

syntax : objektet.indexOf ( delsträng[,början]?) argument: delsträng  - alla stränguttryck början  - vilket numeriskt uttryck som helst resultat: numeriskt värde

metod indexOf  returnerar den första positionen delsträng  i det primitiva värdet för strängen objekt. objektet början början början början  mer än objektet objektet

Sökningen är från vänster till höger. Resten av den här metoden är identisk med metoden. Följande exempel räknar antalet förekomster av substringmönstret i strängen str.

Funktion inträffar (str, mönster) (var pos \u003d str.indexOf (mönster); för (var räkna \u003d 0; pos! \u003d -1; räkna ++) pos \u003d str.indexOf (mönster, pos + mönster.längd); returräkning ;)

Kursiv metod

syntax : objektet.italics () resultat: strängvärde

metod kursiv stil  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i kursiv stil. Exempelvis visar operatören document.write ("Min text" .italics ()) en rad på webbläsarens skärm Min text .

Metod lastIndexOf

syntax : objektet.lastIndexOf ( delsträng[,början]?) argument: delsträng  - alla stränguttryck början  - vilket numeriskt uttryck som helst resultat: numeriskt värde

metod lastIndexOf  returnerar sista position delsträng  i det primitiva värdet för strängen objekt objektet. -1. Om ett valfritt argument ges början, sedan görs sökningen med början från positionen början; om inte, sedan från position 0, dvs från strängets första tecken. om början  negativt tas det lika med noll; om början  mer än objektet. -1, då tas det lika objektet. -1. Om objektet inte innehåller denna substring returneras värdet -1.

Sökningen är från höger till vänster. Resten av den här metoden är identisk med metoden. Ett exempel:

Var n \u003d "Vitval .lastIndexOf (" val "); // n är 6

Länkmetod

syntax : objektet.länk ( uri) argument: uri  - alla stränguttryck resultat: strängvärde

metod länk  returnerar en sträng som består av ett primitivt strängvärde objektmedföljande uri-taggar"\u003e .... Vi kontrollerar inte om källsträngen redan har bifogats i dessa taggar. Den här metoden används i samband med metoden document.write och document.writeln för att skapa en hyperlänk med den angivna uri. Exempelvis är operatörens dokument.write ("Min text" .länk ("# bokmärke")) likvärdigt med operatörens dokument.write ("Min text").

LocaleCompare-metod

syntax : objektet.localeCompare ( sträng1) argument: sträng1  - alla stränguttryck resultat: antal

stöd

metod localeCompare  jämför två rader baserade på nationella inställningar för operativsystem. Det returnerar -1 om det primitiva värdet objekt  mindre string1, +1 om den är större string1och 0 om dessa värden matchar.

Matchmetod

syntax : objektet.match ( regExp) argument: regExp resultat: matris av strängar

metod match regExp objekt. Resultatet av jämförelsen är en matris med de hittade underlagen eller nullom det inte finns matchningar. I det här fallet:

  • om regExp  innehåller inte det globala sökalternativet, metoden körs regExp.exec(objektet) och dess resultat returneras. Den resulterande matrisen innehåller den hittade substrängen i elementet med index 0, och i de återstående elementen - de underlag som motsvarar subexpressions regExpmedföljande parenteser.
  • om regExp  innehåller det globala sökalternativet sedan metoden regExp.exec(objektet) körs tills det finns matchningar. Om n är antalet matchningar som hittas, är resultatet en matris med n-element som innehåller de hittade underlagen. egenskap regExp.lastindex   tilldelade ett positionsnummer i källraden, som indikerar det första tecknet efter den senaste hittade matchen, eller 0 om inga matchningar hittades.

Kom ihåg att metoden regExp.exec   ändrar ett objekts egenskaper regExp. exempel:

Byt ut metoden

syntax : objektet.replace ( regExp,rad) objektet.replace ( regExp,funktion) argument: regExp  - reguljärt uttryckssträng - stränguttryck funktion  - funktionsnamn eller funktionsdeklaration resultat: ny linje

metod ersätta  matchar regelbundet uttryck regExp  med ett primitivt strängvärde objekt  och ersätter de hittade underlagen med andra underlag. Resultatet är en ny rad, som är en kopia av den ursprungliga raden med de ersättningar som gjorts. Ersättningsmetoden bestäms av det globala sökalternativet i regExp   och typen av det andra argumentet.

om regExp  innehåller inte det globala sökalternativet, sedan den första substringsmatchningen regExp  och det ersätts. om regExp  innehåller det globala sökalternativet, sedan alla underlag som matchar regExp, och de ersätts.

rad, sedan ersätts varje hittad substring med den. I detta fall kan strängen innehålla sådana egenskaper hos objektet RegExpsom $ 1, ..., $ 9, lastMatch, lastParen, leftContext och högerContext. Exempelvis visar operatören document.write ("Läckra äpplen, saftiga äpplen.". Ersätt (/ äpplen / g, "päron")) visar raden Läckra päron, saftiga päron på webbläsarens skärm.

Om det andra argumentet är funktion, sedan ersätts varje hittad substring genom att anropa denna funktion. Funktionen har följande argument. Det första argumentet är den hittade substrängen följt av de argument som motsvarar alla subexpressions regExpi parentes är det näst sista argumentet positionen för den hittade substrängen i källsträngen, räknat från noll, och det sista argumentet är källsträngen själv. Följande exempel visar hur man använder metoden ersätta  Du kan skriva funktionen för att konvertera grader Fahrenheit till grader Celsius. Givet scenario

Funktion myfunc ($ 0, $ 1) (return (($ 1-32) * 5/9) + "C";) funktion f2c (x) (var s \u003d String (x); return s.replace (/ (\\ d + ( \\. \\ d *)?) F \\ b /, myfunc);) document.write (f2c ("212F"));

visar strängen 100C på webbläsarens skärm.

Kom ihåg att den här metoden modifierar objektets egenskaper. regExp.

Byt ut exempel

Byt ut alla förekomster av en substring i en sträng

Det händer ofta att du måste ersätta alla händelser på en rad i en annan rad:

Var str \u003d "foobarfoobar"; str \u003d str.replace (/ foo / g, "xxx"); // så småningom få str \u003d "xxxbarxxxbar";

Sökmetod

syntax : objektet.sök ( regExp) argument: regExp  - alla reguljära uttryck resultat: numeriskt uttryck

metod sök  matchar regelbundet uttryck regExp  med ett primitivt strängvärde objekt. Resultatet av jämförelsen är läget för den första hittade substringsträngen, räknat från noll eller -1 om det inte finns några matchningar. I detta fall det globala sökalternativet i regExp  ignoreras och egenskaper regExp  förändras inte. exempel:

Skivmetod

syntax : objektet.slice ( början [,slutet]?) argument: början  och slutet  - alla numeriska uttryck resultat: ny linje

metod skiva objektfrån position början  att positionera slutetinte med henne. om slutet början  och till slutet av den ursprungliga linjen.

Teckenpositioner för en sträng numreras från noll till objektet. -1. Om värdet början objektet. +början. Om värdet slutet  negativt, då ersätts det av objektet. +slutet. Med andra ord behandlas negativa argument som offset från slutet av raden.

Resultatet är ett strängvärde, inte ett strängobjekt. Exempelvis visar operatören document.write ("ABCDEF" .slice (2, -1)) CDE-raden på webbläsarens skärm.

Liten metod

syntax : objektet.small () resultat: strängvärde

metod liten  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Den här metoden används i samband med metoden document.write och document.writeln för att visa text med små tryck. Till exempel, dokumentet.write-uttalande (Min text .small ()) visar strängen Min text på webbläsarens skärm.

Delad metod

syntax : objektet.split ( separator [,numret]?) argument: separator  - sträng eller reguljärt uttryck numret  - numeriskt uttryck resultat: matris av strängar (objekt Array)

metod split  bryter upp det primitiva värdet objekt  till ett antal underlag och returnerar det. Substring är som följer. Källraden skannas från vänster till höger för separator. När den väl hittats, läggs substrängen från slutet av den föregående separatorn (eller från början av linjen, om detta är den första förekomsten av separatorn) till separatorns början till arrayen av underlag. Således faller inte själva avgränsaren i texten till substrängen.

Valfritt argument numret  ställer in maximal möjlig storlek på den resulterande matrisen. Om den är inställd, sedan efter val siffrorna  Substringsmetoden avslutas även om källsträngen inte är färdig att surfa.

separator  kan anges antingen som en sträng eller som ett vanligt uttryck. Det finns flera fall som kräver särskild övervägning:

Följande exempel använder ett vanligt uttryck för att specificera HTML-taggar som en avgränsare. operatör

visar texten med fetstil och, kursiv på webbläsarens skärm.

Strike-metod

syntax : objektet.strike () resultat: strängvärde

metod strike  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text i ett korsat teckensnitt. Exempelvis visar dokumentet.write-uttalande (My Text .strike ()) strängen My Text på webbläsarens skärm.

Submetod

syntax : objektet.sub () resultat: strängvärde

metod sub  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text som ett subscript. Exempelvis visar uttalandet document.write (Min text .sub ()) strängen Min text på webbläsarens skärm.

Substr metod

syntax : objektet.substr ( ställning [,längd]?) argument: ställning  och längd  - numeriska uttryck resultat: strängvärde

metod substr  returnerar en substring av ett primitivt strängvärde objektbörjar med detta positioner  och innehåller längd  tecken. om längd   är inte specificerad, en substring returneras med början från detta positioner  och till slutet av den ursprungliga linjen. om längd  negativ eller lika med noll, då returneras en tom sträng.

Teckenpositioner för en sträng numreras från noll till objektet. -1. om ställning  större än eller lika med objektet., sedan returneras en tom sträng. om ställning  negativt, då behandlas det som en förskjutning från slutet av linjen, dvs ersätts av objektet.+ställning.

anmärkning. om ställning  negativt, Internet Explorer ersätter felaktigt med 0, så detta alternativ bör inte användas för kompatibilitetsändamål.

Var src \u003d "abcdef"; var s1 \u003d src.substr (1, 3); // "bcd" var s2 \u003d src.substr (1); // "bcdef" var s3 \u003d src.substr (-1); // "f", men i MSIE: "abcdef"

Substringsmetod

syntax : objektet.snörsträng ( början [,slutet]) argument: början  och slutet  - numeriska uttryck resultat: strängvärde

metod delsträng  returnerar en substring av ett primitivt strängvärde objektfrån position början  att positionera slutetinte med henne. om slutet  är inte specificerad, returneras substrängen med början från positionen början  och till slutet av den ursprungliga linjen.

Teckenpositioner för en sträng numreras från noll till objektet. -1. Negativa argument eller lika NaN  ersätts av noll; om argumentet är större än längden på den ursprungliga strängen, ersätts det av den. om början   större slutetsedan byter de platser. om början  är slutetsedan returneras en tom sträng.

Resultatet är ett strängvärde, inte ett strängobjekt. exempel:

Var src \u003d "abcdef"; var s1 \u003d src.snörsträng (1, 3); // "bc" var s2 \u003d src.substring (1, -1); // "a" var s3 \u003d src.substring (-1, 1); // "a"

Sup-metod

syntax : objektet.sup () resultat: strängvärde

metod sup  returnerar en sträng som består av ett primitivt strängvärde objektbifogade i taggar …  . Kontrollerar om källsträngen redan har bifogats i dessa taggar inte är klar. Denna metod används i samband med metoden document.write och document.writeln för att visa text som ett superskript. Till exempel, dokumentet.write-uttalande (My Text .sup ()) visar strängen My Text på webbläsarens skärm.

ToLocaleLowerCase-metoden

syntax : objektet.toLocaleLowerCase () resultat: ny linje

stöd: Internet Explorer stöds sedan version 5.5. Netscape Navigator stöds inte.

metod toLocaleLowerCase  returnerar en ny rad där alla bokstäver i den ursprungliga strängen ersätts med gemener, med hänsyn till operativsystemets nationella inställningar. De återstående tecknen i den ursprungliga strängen ändras inte. Den ursprungliga strängen förblir densamma. Vanligtvis ger denna metod samma resultat som; skillnaden är möjlig endast om språkkodningen strider mot Unicode-reglerna för att konvertera versaler till gemener.

ToLocaleUpperCase-metoden

syntax : objektet.toLocaleUpperCase () resultat: ny linje

stöd: Internet Explorer stöds sedan version 5.5. Netscape Navigator stöds inte.

metod toLocaleUpperCase  returnerar en ny rad där alla bokstäver i den ursprungliga strängen ersätts med versaler med hänsyn till operativsystemets nationella inställningar. De återstående tecknen i den ursprungliga strängen ändras inte. Den ursprungliga strängen förblir densamma. Vanligtvis ger denna metod samma resultat som; skillnaden är endast möjlig om språkkodningen strider mot Unicode-reglerna för att konvertera gemener till versaler.

ToLowerCase-metoden

syntax : objektet.toLowerCase () resultat: ny linje

metod toLowerCase  returnerar en ny rad där alla bokstäver i den ursprungliga strängen ersätts med gemener. De återstående tecknen i den ursprungliga strängen ändras inte. Den ursprungliga strängen förblir densamma. Exempelvis visar operatören document.write ("Strängobjekt .toLowerCase ()) en strängobjektsträng på webbläsarens skärm.

En sträng är en sekvens av ett eller flera tecken som kan innehålla bokstäver, siffror och andra tecken. I JavaScript är detta den enklaste immutabla datatypen.

Linjer låter dig visa text och arbeta med den, och text är det huvudsakliga sättet att kommunicera och överföra information på nätverket. Därför är strängar ett av huvudbegreppen för programmering.

Den här handboken lär dig hur du skapar och visar radutgångar, kombinerar rader och lagrar dem i variabler. Du lär dig också om reglerna för att använda citat, apostrofer och övergången till en ny rad i JavaScript.

Skapa och visa en rad

Det finns tre sätt att skapa en sträng i JavaScript: du kan skriva dem i enstaka citat (‘), i dubbla citat (“) eller i omvända citat (`). Även om ibland alla tre typer av strängar finns i skript behöver bara en typ av citattecken användas i en enda sträng.

Strängar i enda och dubbla citattecken är i princip samma sak. Det finns inga konventioner angående användning av en eller annan typ av citattecken, men det rekommenderas vanligtvis att en typ av sekvens används konsekvent i programskript.

"Den här strängen använder enstaka citat.";
  "Den här strängen använder dubbla citat.";

Det tredje och nyaste sättet att skapa en sträng kallas en mall letteral. Malbokstäver skrivs i baksnitt (kallas också en trubbig accent) och fungerar precis som vanliga strängar med några extra funktioner som vi kommer att täcka i den här artikeln.

`Den här strängen använder backticks. ';

Det enklaste sättet att visa utgången från en sträng är att ange den i konsolen med hjälp av console.log ().

console.log ("Detta är en sträng i konsolen.");
  Detta är en sträng i konsolen.

Ett annat enkelt sätt att begära värdet på en sträng är en pop-up i webbläsaren, som kan ringas med hjälp av alarm ():

alert ("Detta är en sträng i en varning.");

Den här raden öppnar ett meddelandefönster i webbläsaren med följande text:

Detta är en sträng i en varning.

Alarmmetoden används mindre ofta eftersom varningar måste stängas ständigt.

Lagring av strängar i variabler

JavaScript-variabler heter behållare som lagrar värden med hjälp av nyckelorden var, const eller låt. Linjer kan tilldelas variabler.

const newString \u003d "Detta är en sträng tilldelad en variabel.";

Nu innehåller den nya strängvariabeln en sträng, den kan refereras och visas med hjälp av konsolen.

console.log (newString);
  Detta är en sträng tilldelad en variabel.

Tilldela linjer till variabler, du behöver inte ange raden igen varje gång du behöver skriva ut den, vilket förenklar arbetet med linjer i program.

Strängen sammankoppling

Strängen sammanlänkning är processen att kombinera två eller flera rader till en ny linje. Samkoppling utförs med operatören +. Symbolen + är också en tilläggsoperatör i matematiska operationer.

Försök till exempel att kombinera två korta rader:

"Hav" + "häst";
  Seahorse

Sammanfogning kombinerar slutet på en rad med början på en annan rad utan att sätta in mellanslag. För att ha ett avstånd mellan linjerna måste du lägga till det i slutet av den första raden.

"Hav" + "häst";
  Havshäst

Concatenation låter dig kombinera strängar och variabler med strängvärden.



  const favePoem \u003d "Min favoritdikt är" + dikt + "av" + författare ".";

Nya linjer som härrör från sammanlänkning kan användas i programmet.

Mallar bokstavliga variabler

En av funktionerna i malllitteraler är förmågan att inkludera uttryck och variabler i en sträng. Istället för att sammanfoga kan du använda $ () -syntaxen för att infoga en variabel.

const poet \u003d "The Wide Ocean";
  const författare \u003d "Pablo Neruda";
  const favePoem \u003d `Min favoritdikt är $ (dikt) av $ (författare). ';
  Min favoritdikt är The Wide Ocean av Pablo Neruda.

Med denna syntax får du samma resultat. Malbokstäver förenklar strängen sammankoppling.

Strängbokstäver och strängvärden

Som du kanske har lagt märke till är alla strängar skrivna med citattecken eller baksatser, men citatsträngen innehåller inte i utdatorn.

"Beyond the Sea";
  Bortom havet

En strängbokstav är en sträng som den visas i källkoden, inklusive citattecken. Ett strängvärde är en sträng som visas i utgången (utan citat).

I det här exemplet är "Beyond the Sea" en strängbokstavlig, och Beyond the Sea är ett strängvärde.

Korsa citat och apostrofer i strängar

Eftersom citattecken används för att indikera strängar finns det särskilda regler för att använda apostrofer och citattecken i strängar. Exempelvis kommer apostrofen i mitten av strängen i enstaka citat att tolkas av JavaScript som en avslutande enda offert och försöker läsa resten av den föreslagna strängen som kod.

Tänk på detta exempel:

const brokenString \u003d "Jag" m en trasig sträng ";
  console.log (brokenString);
  okänd: Oväntat token (1:24)

Samma sak händer om du försöker använda dubbla citat inuti en sträng som är bifogad med dubbla citat. Tolken kommer inte att märka skillnaden.

För att undvika sådana fel kan du använda:

  • En annan strängsyntax.
  • Escape karaktärer.
  • Mall bokstavlig.

Alternativ strängsyntax

Det enklaste sättet att komma runt detta problem är med syntaxen motsatt den som du använder i skriptet. Ta till exempel strängar med apostrofer i dubbla citat:

"Vi använder säkert en apostrof i dubbla citat."

Linjer med citat kan tas i enstaka offert:

"Då sa han," Hej, världen! "";

Genom att kombinera enstaka och dubbla citat kan du styra visningen av citat och apostrofer i strängar. Detta kommer dock att påverka syntaxkonsistensen i projektfilerna, det kommer att vara svårt att underhålla dem.

Escape karaktär \\

Med hjälp av en backslash kommer JavaScript inte att tolka citattecken som slutande offert.

Kombinationen \\ 'kommer alltid att uppfattas som en apostrof och \\ "som dubbla citat, utan undantag.

Detta gör att du kan använda apostrofer i strängar i enstaka citat och citat i strängar med dubbla citat.

"Vi använder säkert en apostrof i enstaka citat."
  "Då sa han:" Hej, världen! "";

Den här metoden ser lite rörig ut. Men det är nödvändigt om en rad innehåller både en apostrof och dubbla citat.

Mallbokstäver

Mallbokstäver är definierade med baksida, så dubbla citat och apostrofer kan säkert användas utan ytterligare manipulationer.

"Vi använder säkert apostrofer och" citat "i en bokstavlig mall.";

Mallbokstäver undviker inte bara fel när du visar citat och apostrofer, utan ger också stöd för inline-uttryck och flerfradiga block, vilket kommer att diskuteras i nästa avsnitt.

Multi-line och newline

I vissa situationer finns det ett behov av att infoga en ny linje eller radbrytning. Escape-tecken \\ n eller \\ r hjälper dig att infoga en ny rad i kodutgången.

const threeLines \u003d "Det här är en sträng \\ n som sträcker sig över \\ n tre linjer.";
  Detta är en sträng
  som sträcker sig över
  tre rader.

Detta bryter utgången i flera rader. Men om koden har långa rader kommer det att vara svårt att arbeta och läsa med dem. För att visa en enda rad i flera rader använder du sammankopplingsoperatören.

const threeLines \u003d "Detta är en sträng \\ n" +
  "som sträcker sig över \\ n" +
  "tre rader.";

Du kan också kringgå en ny rad med hjälp av flyktecknet \\.

const threeLines \u003d "Detta är en sträng \\ n \\
  som sträcker sig över \\ n \\
  tre rader. ";

anmärkning: Den här metoden rekommenderas inte, eftersom den kan orsaka problem i vissa webbläsare.

Använd malllitteraler för att göra koden läsbar. Detta eliminerar sammankopplingar och flyktecken.

const threeLines \u003d `Detta är en sträng
  som sträcker sig över
  tre rader. "
  Detta är en sträng
  som sträcker sig över
  tre rader.

Eftersom olika kodbaser kan använda olika standarder, är det viktigt att känna till alla sätt att hoppa till en ny rad och skapa flerlinjer.

slutsats

Nu känner du till de grundläggande principerna för att arbeta med strängar i JavaScript, du kan skapa strängar och mallbokstäver, utföra sammankoppling och korsning och tilldela strängar till variabler.

   tags:






      2019 © gtavrl.ru.