JavaScript-strings worden gebruikt voor het opslaan en manipuleren van tekst.
Een JavaScript-tekenreeks bestaat uit nul of meer tekens tussen aanhalingstekens.
Voorbeeld
var x = "John Doe";
U kunt enkele of dubbele aanhalingstekens gebruiken:
Voorbeeld
var carName1 = "Volvo XC60"; // Double quotes
var carName2 = 'Volvo XC60'; // Single quotes
U kunt aanhalingstekens binnen een string gebruiken, zolang ze niet overeenkomen met de aanhalingstekens rondom de string:
Voorbeeld
var answer1 = "It's alright";
var answer2 = "He is called 'Johnny'";
var answer3 = 'He is called "Johnny"';
Omdat strings tussen aanhalingstekens moeten worden geschreven, zal JavaScript deze tekenreeks verkeerd begrijpen:
var x = "We are the so-called "Vikings" from the north.";
De string wordt omgezet naar "We are the so-called ".
De oplossing om dit probleem te verhelpen, is door het backslash-escape-teken te gebruiken .
Het (\) backslash-escape-teken verandert speciale tekens in tekenreeks-tekens:
Code | Resultaat | Omschrijving |
\' |
' | Single quote |
\" |
" | Double quote |
\\ |
\ | Backslash |
De reeks \"
voegt een dubbel aanhalingsteken in een string in:
Voorbeeld
var x = "We are the so-called \"Vikings\" from the north.";
Zes andere escape-reeksen zijn geldig in JavaScript:
Code | Resultaat |
\b | Backspace |
\f | Form Feed |
\n | New Line |
\r | Carriage Return |
\t | Horizontal Tabulator |
\v | Vertical Tabulator |
De 6 bovenstaande escape-tekens zijn oorspronkelijk ontworpen om typemachines, teletypes en faxmachines te bedienen. Ze slaan nergens meer op in HTML.
Voor de beste leesbaarheid vermijden programmeurs vaak coderegels die langer zijn dan 80 tekens. Als een JavaScript-instructie niet op één regel past, kunt u deze het beste afbreken na een operator:
Voorbeeld
document.getElementById("demo").innerHTML =
"Hello Dolly!";
U kunt ook een coderegel binnen een tekst reeks opsplitsen met een enkele backslash:
Voorbeeld
document.getElementById("demo").innerHTML = "Hello \
Dolly!";
De \ methode heeft niet de voorkeur. Het werkt misschien niet in alle browsers.
Sommige browsers staan geen spaties achter het \ teken toe.
Een veiligere manier om een string te breken, is door string-optelling te gebruiken:
Voorbeeld
document.getElementById("demo").innerHTML = "Hello " +
"Dolly!";
Je kunt geen code opbreken met een backslash, het volgende werkt niet:
Voorbeeld
document.getElementById("demo").innerHTML = \
"Hello Dolly!";
De length eigenschap retourneert de lengte van een tekenreeks:
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
De indexOf()
methode retourneert de index van het eerst voorkomen van een opgegeven tekst in een string:
var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");
De lastIndexOf()
methode retourneert de index van de laatste keer dat een opgegeven tekst in een string kiest:
var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");
JavaScript telt posities vanaf nul. 0 is de eerste positie in een string, 1 is de tweede, 2 is de derde ...
Beide indexOf()
, en lastIndexOf()
retourneren -1 als de tekst niet wordt gevonden.
Beide methoden accepteren een tweede parameter als de startpositie voor de zoekopdracht:
De lastIndexOf()
methode zoekt achteruit (van het einde naar het begin), wat betekent: als de tweede parameter 15 is, begint het zoeken op positie 15 en zoekt javascript naar het begin van de string.
var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate", 15);
The search()
method searches a string for a specified value and returns the position of the match:
var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");
Zijn indexOf()
en search()
hetzelfde?
Ze accepteren dezelfde argumenten (parameters) en retourneren dezelfde waarde?
De twee methoden zijn NIET hetzelfde. Dit zijn de verschillen:
search()
methode kan geen tweede startpositie-argument hebben.indexOf()
methode kan geen krachtige zoekwaarden aannemen (reguliere Expressies).
slice()
extraheert een deel van een string en retourneert het uitgepakte deel in een nieuwe string.
De methode heeft 2 parameters: de startpositie en de eindpositie (einde niet inbegrepen).
Dit voorbeeld snijdt een deel van een string uit van positie 7 naar positie 12 (13 min 1):
Voorbeeld
var str = "Apple, Banana, Kiwi";
var res = str.slice(7, 13);
Het resultaat van het onderzoek zal zijn:
Banana
Als een parameter negatief is, wordt de positie geteld vanaf het einde van de string.
In dit voorbeeld wordt een deel van een string uitgesneden van positie -12 naar positie -6:
Voorbeeld
var str = "Apple, Banana, Kiwi";
var res = str.slice(-12, -6);
Het resultaat van het onderzoek zal zijn:
Banana
Als u de tweede parameter weglaat, snijdt de methode de rest van de string uit:
Voorbeeld
var str = "Apple, Banana, Kiwi";
var res = str.slice(7);
var res = str.slice(-12);
De replace()
methode vervangt een opgegeven waarde door een andere waarde in een string:
str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3Schools");
Een string wordt naar hoofdletters omgezet met toUpperCase()
:
var text1 = "Hello World!"; // String
var text2 = text1.toUpperCase(); // text2 is text1 converted to upper
Een string wordt omgezet in kleine letters met toLowerCase()
:
var text1 = "Hello World!"; // String
var text2 = text1.toLowerCase(); // text2 is text1 converted to lower
concat()
voeg twee of meer strings samen:
var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ", text2);
De concat()
methode kan worden gebruikt in plaats van de plus-operator. Deze twee regels doen hetzelfde:
var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ", "World!");
De trim()
methode verwijdert witruimte aan beide zijden van een string:
var str = " Hello World! ";
alert(str.trim());
De charAt()
methode retourneert het teken op een opgegeven index (positie) in een tekenreeks:
var str = "HELLO WORLD";
str.charAt(0); // returns H
Een string kan worden geconverteerd naar een array met de split()
methode:
var txt = "a,b,c,d,e"; // String
txt.split(","); // Split on commas
txt.split(" "); // Split on spaces
txt.split("|"); // Split on pipe
Als het scheidingsteken "" (leeg) is, zal de geretourneerde array een array van alle losse tekens zijn:
var txt = "Hello"; // String
txt.split(""); // Split in characters