JavaScript string methods

strängmetoder hjälper dig att hantera strängar.

strängmetoder och egenskaper

ursprungliga värden, som "Bill Gates", kan inte ha egenskaper och metoder (eftersom de inte är objekt).

men genom JavaScript kan metoder och egenskaper också användas för ursprungliga värden, eftersom JavaScript betraktar ursprungliga värden som objekt när metoder och egenskaper körs.

strängens längd

length egenskapen returnerar längden på strängen:

Exempel

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Prova själv

sök efter en sträng i en sträng

indexOf() metoden returnerar den specificerade texten i strängenförstaförekomsten av index (position):

Exempel

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

Prova själv

JavaScript räknar positioner från noll.

0 är den första positionen i strängen, 1 är den andra, 2 är den tredje ...

lastIndexOf() metoden returnerar den specificerade texten i strängensistindex för en enda förekomst:

Exempel

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");

Prova själv

om texten inte hittas indexOf() och lastIndexOf() båda returnerar -1.

Exempel

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

Prova själv

Båda metoderna accepterar den andra parametern som startposition för sökningen.

Exempel

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);

Prova själv

lastIndexOf() Metoden söker bakåt (från slutet till början), vilket innebär att: Om den andra parametern är 50, söker den från position 50 till början av strängen.

Exempel

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);

Prova själv

Sök efter en sträng i en sträng

search() Metoden söker efter en specifik sträng i en sträng och returnerar matchande positionen:

Exempel

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

Prova själv

Har du lagt märke till det?

dessa två metoder,indexOf() och search()ärlikadana.

Dessa två metoder är inte lika. Skillnaden ligger i:

  • search() metoden kan inte ställa in en andra startposition parameter.
  • indexOf() metoden kan inte ställa in kraftfullare sökvärden (reguljära uttryck).

Du kommer attReguljära uttryckkapitlet lär dig dessa kraftfullare sökvärden.

Extrahera en del av strängen

Det finns tre sätt att extrahera en del av en sträng:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

slice() metoden

slice() Extrahera en del av strängen och returnera den extraherade delen i en ny sträng.

Metoden anger två parametrar: startindex (startposition), slutindex (slutposition).

Detta exempel klipper bort fragmentet från position 7 till position 13 i strängen:

Exempel

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

Resultatet av res är:

Banana

Prova själv

Om någon parameter är negativ, räknas positionen från slutet av strängen.

Detta exempel klipper bort fragmentet från position -12 till position -6 i strängen:

Exempel

var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);

Resultatet av res är:

Banana

Prova själv

Om den andra parametern utelämnas, kommer denna metod att klippa bort den återstående delen av strängen:

Exempel

var res = str.slice(7);

Prova själv

eller räkna från slutet:

Exempel

var res = str.slice(-13);

Prova själv

Tips:Negativa positioner gäller inte för Internet Explorer 8 och tidigare versioner.

substring() metoden

substring() Liknande slice().

Skillnaden ligger i substring() Kan inte acceptera negativa index.

Exempel

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);

Resultatet av res är:

Banana

Prova själv

Om den andra parametern utelämnas, kommer denna substring() klipper bort den återstående delen av strängen.

substr() metoden

substr() Liknande slice().

Skillnaden ligger i att den andra parametern definierar den del som ska extraheras.Längd.

Exempel

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

Resultatet av res är:

Banana

Prova själv

Om den andra parametern utelämnas, kommer denna substr() att klippa bort den återstående delen av strängen.

Exempel

var str = "Apple, Banana, Mango";
var res = str.substr(7);

Prova själv

Resultatet av res är:

Banana, Mango

Om den första parametern är negativ, räknas positionen från slutet av strängen.

Exempel

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

Prova själv

Resultatet av res är:

Mango

Den andra parametern får inte vara negativ eftersom den definierar längden.

Ersätt stränginnehållet

replace() Metoden ersätter en annan värde med det värde som anges i strängen:

Exempel

str = "Vänligen besök Microsoft!";
var n = str.replace("Microsoft", "W3School");

Prova själv

replace() metoden ändrar inte den sträng som anropas. Den returnerar en ny sträng.

Som standardreplace() ersätter bara den första matchningen:

Exempel

str = "Vänligen besök Microsoft och Microsoft!";
var n = str.replace("Microsoft", "W3School");

Prova själv

Som standardreplace() är känslig för storlek på bokstäver. Därför matchar inte MICROSOFT:

Exempel

str = "Vänligen besök Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

Prova själv

För att utföra känslig för storlek på bokstäver ersättning, använd reguljära uttryck /i(känslig för storlek på bokstäver):

Exempel

str = "Vänligen besök Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

Prova själv

Observera att reguljära uttryck inte innehåller citationstecken.

För att ersätta alla matchningar, använd reguljära uttryckens g flaggor (används för global sökning):

Exempel

str = "Vänligen besök Microsoft och Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

Prova själv

Du kommer att lära dig mer om JavaScript-reguljära uttryck i detta kapitelReguljära uttryckinnehållet.

Konvertera till stora och små bokstäver

Genom toUpperCase() Konvertera strängen till stora bokstäver:

Exempel

var text1 = "Hello World!";       // Sträng
var text2 = text1.toUpperCase();  // text2 är den som konverterats till stora bokstäver av text1

Prova själv

Genom toLowerCase() Konvertera strängen till små bokstäver:

Exempel

var text1 = "Hello World!";       // Sträng
var text2 = text1.toLowerCase();  // text2 är den som konverterats till små bokstäver av text1

Prova själv

concat() metoden

concat() Koppla samman två eller flera strängar:

Exempel

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

Prova själv

concat() Metoder kan användas för att ersätta additionstecknet. Följande två rader är ekvivalenta:

Exempel

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

Alla strängmetoder returnerar en ny sträng. De ändrar inte den ursprungliga strängen.

Formellt sägs: Strängar är oförändringsbara: Strängar kan inte ändras, bara ersättas.

String.trim()

trim() Metoden tar bort blanka tecken från båda ändarna av strängen:

Exempel

var str = "       Hello World!        ";
alert(str.trim());

Varning:Internet Explorer 8 eller äldre versioner stöder inte trim() Metod.

Prova själv

För att stödja IE 8, kan du använda regular expressions tillsammans med metoden. replace() Metod istället för:

Exempel

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

Prova själv

Du kan också använda ovanstående replace-lösning för att lägga till trim-funktionen till JavaScript String.prototype:

Exempel

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
var str = "       Hello World!        ";
alert(str.trim());

Prova själv

Extrahera tecken från sträng

Detta är två metoder för att extrahera tecken från en sträng:SäkerMetod:

  • charAt(position)
  • charCodeAt(position)

charAt() metod

charAt() Metoden returnerar den specificerade indexpositionen i strängen:

Exempel

var str = "HELLO WORLD";
str.charAt(0); // Återger H

Prova själv

charCodeAt() metod

charCodeAt() Metoden returnerar unicode-koden för tecknet vid den specificerade indexen i strängen:

Exempel

var str = "HELLO WORLD";
str.charCodeAt(0); // Återger 72

Prova själv

Egenskapsåtkomst (Property Access)

ECMAScript 5 (2009) tillåter egenskapsåtkomst för strängar [ ]:

Exempel

var str = "HELLO WORLD";
str[0]; // Återger H

Prova själv

Att använda egenskapsåtkomst är inte så pålitligt:

  • Inte tillämplig för Internet Explorer 7 eller tidigare versioner
  • Det gör strängen ser ut som en array (men det är det inte)
  • om det inte hittas ett tecken:[ ] Återger undefinedoch charAt() Återger en tom sträng.
  • Det är skrivskyddat.str[0] = "A" Inget fel uppstår (men det fungerar inte heller!)

Exempel

var str = "HELLO WORLD";
str[0] = "A"; // Inget fel uppstår, men det fungerar inte
str[0]; // Återger H

Prova själv

Tips:Om du vill hantera strängen som en array, kan du först konvertera den till en array.

Konvertera strängen till en array

Genom att split() Konvertera strängen till en array:

Exempel

var txt = "a,b,c,d,e";   // Sträng
txt.split(",");          // Dela upp med komma
txt.split(" ");          // Dela upp med blanksteg
txt.split("|");          // Dela upp med vertikalstreck

Prova själv

Om separatorn är utelämnad, kommer den array som returneras att innehålla den helaste strängen i index [0].

Om separatorn är "", kommer den array som returneras att vara en array med enskilda tecken:

Exempel

var txt = "Hello";       // Sträng
txt.split("");           // Dela upp i tecken

Prova själv

Komplett String-handbok

För en fullständig handbok, besök vår JavaScript-sträng-handbok.

Denna handbok innehåller beskrivningar och exempel på alla sträng-attribut och metoder.