Metoden indexOf()
returnerar index (position) den första förekomsten av en sträng i en sträng:
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The indexOf() Method</h2>
<p>The indexOf() method returns the position of the first occurrence of a string in a string.</p>
<p>The position of the first occurrence of "locate" is:</p>
<p id="demo"></p>
<script>
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate");
document.getElementById("demo").innerHTML = index;
</script>
</body>
</html>
JavaScript räknar positioner från noll.
0 är den första positionen i a sträng, 1 är den andra, 2 är den tredje, ...
Metoden lastIndexOf()
returnerar index för den senaste förekomst av en angiven text i en sträng:
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("locate");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The lastIndexOf() Method</h2>
<p>The position of the last occurrence of "locate" is:</p>
<p id="demo"></p>
<script>
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("locate");
document.getElementById("demo").innerHTML = index;
</script>
</body>
</html>
Både indexOf()
och lastIndexOf()
returnerar -1 om texten inte hittas:
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("John");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The indexOf() Method</h2>
<p>Both indexOf() and lastIndexOf() return -1 if the text is not found:</p>
<p id="demo"></p>
<script>
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("John");
document.getElementById("demo").innerHTML = index;
</script>
</body>
</html>
Båda metoderna accepterar en andra parameter som startposition för Sök:
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate", 15);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The indexOf() Method</h2>
<p>The indexOf() method accepts a second parameter as the starting position for the search:</p>
<p id="demo"></p>
<script>
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate",15);
document.getElementById("demo").innerHTML = index;
</script>
</body>
</html>
lastIndexOf()
-metoderna söker baklänges (från slutet till början), vilket betyder: om den andra parametern är 15
, startar sökningen vid position 15 och söker till början av strängen.
let text = "Please locate where 'locate' occurs!";
text.lastIndexOf("locate", 15);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The lastIndexOf() Method</h2>
<p>The lastIndexOf() method accepts a second parameter as the starting position for the search.</p>
<p>Remember that the lastIndexOf() method searches backwards, so position 15 means start the search at position 15, and search to the beginning.</p>
<p id="demo"></p>
<script>
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("locate", 15);
document.getElementById("demo").innerHTML = index;
</script>
</body>
</html>
Metoden search()
söker i en sträng efter en sträng (eller ett reguljärt uttryck) och returnerar matchens position:
let text = "Please locate where 'locate' occurs!";
text.search("locate");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The search() Method</h2>
<p>The search() method returns the position of the first occurrence of a string in a string.</p>
<p>The position of the first occurrence of "locate" is:</p>
<p id="demo"></p>
<script>
let text = "Please locate where 'locate' occurs!";
let index = text.search("locate");
document.getElementById("demo").innerHTML = index;
</script>
</body>
</html>
let text = "Please locate where 'locate' occurs!";
text.search(/locate/);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The search() Method</h2>
<p>The search() method returns the position of the first occurrence of a string in a string.</p>
<p>Return the position of the first occurrence of a regular expression:</p>
<p id="demo"></p>
<script>
let text = "Please locate where 'locate' occurs!";
let index = text.search(/locate/);
document.getElementById("demo").innerHTML = index;
</script>
</body>
</html>
De två metoderna, indexOf()
och search()
, är lika?
De accepterar samma argument (parametrar) och returnerar samma värde?
De två metoderna är INTE lika. Det här är skillnaderna:
Metoden search()
kan inte ta ett andra startpositionsargument.
Metoden indexOf()
kan inte ta kraftfulla sökvärden (reguljära uttryck).
Du kommer att lära dig mer om reguljära uttryck i ett senare kapitel.
Metoden match()
returnerar en array som innehåller resultaten av matchning en sträng mot en sträng (eller ett reguljärt uttryck).
Utför en sökning efter "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match("ain");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The match() Method</h2>
<p>Perform a search for "ain":</p>
<p id="demo"></p>
<script>
let text = "The rain in SPAIN stays mainly in the plain";
const myArr = text.match("ain");
document.getElementById("demo").innerHTML = myArr.length + " " + myArr;
</script>
</body>
</html>
Utför en sökning efter "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The match() Method</h2>
<p>Perform a search for "ain":</p>
<p id="demo"></p>
<script>
let text = "The rain in SPAIN stays mainly in the plain";
const myArr = text.match(/ain/);
document.getElementById("demo").innerHTML = myArr.length + " " + myArr;
</script>
</body>
</html>
Utför en global sökning efter "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/g);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The match() Method</h2>
<p>Perform a global search for "ain":</p>
<p id="demo"></p>
<script>
let text = "The rain in SPAIN stays mainly in the plain";
const myArr = text.match(/ain/g);
document.getElementById("demo").innerHTML = myArr.length + " " + myArr;
</script>
</body>
</html>
Utför en global, skiftlägesokänslig sökning efter "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/gi);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The match() Method</h2>
<p>Perform a global, case-insensitive search for "ain":</p>
<p id="demo"></p>
<script>
let text = "The rain in SPAIN stays mainly in the plain";
const myArr = text.match(/ain/gi);
document.getElementById("demo").innerHTML = myArr.length + " " + myArr;
</script>
</body>
</html>
Om ett reguljärt uttryck inte innehåller g-modifieraren (global sökning), match()
returnerar endast den första matchningen i strängen.
Läs mer om reguljära uttryck i kapitlet JS RegExp.
Metoden matchAll()
returnerar en iterator som innehåller resultaten av matchning en sträng mot en sträng (eller ett reguljärt uttryck).
const iterator = text.matchAll("Cats");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The matchAll() Method</h2>
<p>ES2020 intoduced the string method matchAll().</p>
<p id="demo"></p>
<script>
let text = "I love cats. Cats are very easy to love. Cats are very popular."
const iterator = text.matchAll("Cats");
document.getElementById("demo").innerHTML = Array.from(iterator);
</script>
</body>
</html>
Om parametern är ett reguljärt uttryck måste den globala flaggan (g) ställas in, annars ett TypeError visas.
const iterator = text.matchAll(/Cats/g);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The matchAll() Method</h2>
<p>ES2020 intoduced the string method matchAll().</p>
<p id="demo"></p>
<script>
let text = "I love cats. Cats are very easy to love. Cats are very popular."
const iterator = text.matchAll(/Cats/g);
document.getElementById("demo").innerHTML = Array.from(iterator);
</script>
</body>
</html>
Om du vill söka skiftlägesokänslig måste den okänsliga flaggan (i) ställas in:
const iterator = text.matchAll(/Cats/gi);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The matchAll() Method</h2>
<p>ES2020 intoduced the string method matchAll().</p>
<p id="demo"></p>
<script>
let text = "I love cats. Cats are very easy to love. Cats are very popular."
const iterator = text.matchAll(/Cats/gi);
document.getElementById("demo").innerHTML = Array.from(iterator);
</script>
</body>
</html>
matchAll()
är en ES2020-funktion.
matchAll()
fungerar inte i Internet Explorer.
Metoden includes()
returnerar true om en sträng innehåller ett specificerat värde.
Annars returnerar den false
.
Kontrollera om en sträng innehåller "värld":
let text = "Hello world, welcome to the universe.";
text.includes("world");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The includes() Method</h2>
<p>Check if a string includes "world":</p>
<p id="demo"></p>
<p>The includes() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.includes("world");
</script>
</body>
</html>
Kontrollera om en sträng innehåller "värld". Börja vid position 12:
let text = "Hello world, welcome to the universe.";
text.includes("world", 12);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The includes() Method</h2>
<p>Check if a string includes "world" starting from position 12:</p>
<p id="demo"></p>
<p>The includes() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.includes("world", 12);
</script>
</body>
</html>
includes()
är skiftlägeskänslig.
includes()
är en ES6-funktion.
includes()
stöds inte i Internet Explorer.
Metoden startsWith()
returnerar true
om en sträng börjar med ett angivet värde.
Annars returnerar den false
:
Returnerar sant:
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The startsWith() Method</h2>
<p>Check if a string starts with "Hello":</p>
<p id="demo"></p>
<p>The startsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.startsWith("Hello");
</script>
</body>
</html>
Returnerar falskt:
let text = "Hello world, welcome to the universe.";
text.startsWith("world")
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The startsWith() Method</h2>
<p id="demo"></p>
<p>The startsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.startsWith("world");
</script>
</body>
</html>
En startposition för sökningen kan anges:
Returnerar falskt:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The startsWith() Method</h2>
<p id="demo"></p>
<p>The startsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.startsWith("world", 5);
</script>
</body>
</html>
Returnerar sant:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The startsWith() Method</h2>
<p id="demo"></p>
<p>The startsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.startsWith("world", 6);
</script>
</body>
</html>
startsWith()
är skiftlägeskänslig.
startsWith()
är en ES6-funktion.
startsWith()
stöds inte i Internet Explorer.
Metoden endsWith()
returnerar true
om en sträng slutar med ett angivet värde.
Annars returnerar den false
:
Kontrollera om en sträng slutar med "Doe":
let text = "John Doe";
text.endsWith("Doe");
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Strings</h2>
<p>Check if a string ends with "Doe":</p>
<p id="demo"></p>
<p>The endsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "John Doe";
document.getElementById("demo").innerHTML = text.endsWith("Doe");
</script>
</body>
</html>
Kontrollera om de 11 första tecknen i en sträng slutar med "värld":
let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11);
Prova själv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Strings</h2>
<p>Check in the 11 first characters of a string ends with "world":</p>
<p id="demo"></p>
<p>The endsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.endsWith("world", 11);
</script>
</body>
</html>
endsWith()
är skiftlägeskänslig.
endsWith()
är en ES6-funktion.
endsWith()
stöds inte i Internet Explorer.
För en fullständig strängreferens, gå till vår:
Komplett JavaScript-strängreferens.
Referensen innehåller beskrivningar och exempel på alla strängegenskaper och metoder.