Werken met strings
Het object type "String" is de kern van JavaScript. Alle data wordt behandeld als string, tenzij je expliciet aangeeft dat het iets anders moet zijn.
Feitelijk is een string een lijst (array) van karakters (letters, cijfers, leestekens, enz.). Het eerste karakter heeft volgnummer (index) 0, het tweede karakter heeft index 1, het derde karakter heeft index 2, enzovoort. Dit maakt het betrekkelijk eenvoudig om tekens toe te voegen, te veranderen en te verwijderen. Hiervoor zijn functies beschikbaar; eigenlijk zijn dit methodes van het object String.
Het is niet nodig een string expliciet te declareren, maar het mag wel. De code:
my_text = new String("Dit is een rijtje karakters")is correct, maar is niet nodig omdat elke variabele automatisch van het type string is. Deze code is voldoende:
var my_text = "Dit is een rijtje karakters"
Tekst op het scherm zetten vanuit JavaScript doe je met document.write('string'). Er zijn functies
beschikbaar om de tekst op te maken (vet, sup- en superscript, lettertype
,
enz..).
Opvallend is dat een functie voor onderstrepen ontbreekt. Het gebruik van de underline-tag
<U>..</U> wordt overigens in de specificatie van HTML 4.0 afgeraden.
Er is ook nog het zogenaamde 'escape'-karakter; dit is '\', de backslash. Hiermee geef je aan dat het eerstvolgende karakter onderdeel is van de string, en niet deel is van de JavaScript-code.
- Alleen het relevante deel van de code wordt getoond. De code is echter steeds onderdeel van een stukje JavaScript.
- Elke opdracht waarin een string voorkomt moet op één regel staan. Hieronder is dat echter niet
altijd het geval (hangt af van de grootte van het browser-venster op het scherm).
- Strings manipuleren
- Onder het manipuleren van strings verstaan we hier:
werken met de inhoud van strings. Dat kan zijn: karakters zoeken, invoegen, weghalen, vervangen, enz. - Hieronder volgt een opsomming van de mogelijkheden in JavaScript.
anchor(naam) Voeg een HTML-anker toe aan een tekenreeks.
tag <ANCHOR>). Dit is alleen interessant als je de opmaak-taal WML gebruikt voor je site (naast of in plaats van HTML).link(href) Voeg een hypertext-link (tag <A HREF="....">....</A>) toe aan een tekenreeks. charAt(n) Geef het karakter met index n van de tekenreeks. charCodeAt(n) Geef de tekencode van het karakter met index n van de tekenreeks. match(reeks) Zoek bestaan van reeks in een tekenreeks. search(reeks) Zoek bestaan van reeks in een tekenreeks. indexOf(reeks,start) Zoek reeks in een tekenreeks, vanaf positie start tot het einde van de tekenreeks. lastIndexOf(reeks,start) Zoek reeks in een tekenreeks, vanaf positie start terug naar het begin van de tekenreeks. replace(reeks_1,reeks_2) Vervang reeks_1 door reeks_2. slice(eerste, laatste) Haal een reeks uit een tekenreeks, vanaf positie eerste tot en met positie laatste. split(scheidingsteken) Splits een tekenreeks in een array van tekenreeksen, op scheidingsteken. substring(eerste, laatste) Geef het deel van een tekenreeks van positie eerste tot en met positie laatste. substr(eerste,aantal) Geef het deel van aantal karakters van een tekenreeks, te beginnen bij positie eerste. toLowerCase() Zet een tekenreeks om on kleine letters. toUpperCase() Zet een tekenreeks om in HOOFDLETTERS. concat(str1, str2, ....) Zet tekenreeksen achter elkaar. Vul zoveel parameters in als er nodig zijn.
Je kunt hier ook het plus-teken voor gebruiken, dat is eenvoudiger programmeren. De code: a = concat(b,c,d)
heeft hetzelfde effect als: a = b + c + dString.length Dit is een eigenschap van het object String. Hiermee bepaal je het aantal karakters in een string. Als bijvoorbeeld de string naam = 'abcde', dan heeft naam.length de waarde 5. String.fromCharCode(c1,c2,c3,....) Dit is een zg. "statische methode" van het object String. Aan de hand van een lijst tekencodes c1, c2, c3, enz., wordt een string samengesteld. Gebruik net zoveel parameters als er nodig zijn.
- Onder het manipuleren van strings verstaan we hier:
- Gebruik:
- Zet de functies gewoon achter de string.
- Voorbeeld: de code
a = 'Dit is een voorbeeld';
document.write('Aantal karakters in string a: ' + a.length + '<br>');
document.write(a.substr(11,19).toUpperCase()+'<br>');
a = a.replace('een','een mooi');
document.write(a.replace('is','was'));
toont op het scherm:
- Strings opmaken voor document.write()
- Bij elke functie is de overeenkomende HTML 4.01-tag genoemd (een aantal van deze tags bestaat niet meer in HTML5).
big() Grote tekens, zoals met <BIG> blink() Tekst laten knipperen, zoals met <BLINK> bold() Tekst vet zetten, zoals met <B> fixed() Tekst met vaste breedte
, zoals met <TT>fontcolor(kleur) Stel de kleur in met <FONT>. De parameter kleur is de RGB-code voor de gewenste kleur: '#RRGGBB'. fontsize(grootte) Stel de lettergrootte in met <FONT>. De parameter grootte is -net zoals in HTML- een getal tussen 1 en 7. italics() Tekst cursief zetten, zoals met <I> small() Tekst klein zetten, zoals met <SMALL> strike() Tekst doorhalen, zoals met <STRIKE> sub() Tekst in subscript zetten, zoals met <SUB> sup() Tekst in superscript zetten, zoals met <SUP> - Gebruik:
- Zet de functies gewoon achter de string.
- Voorbeeld: de code
document.write('Dit is een '+' string'.bold().fontsize('4').
fontcolor('#000099'))
toont op het scherm:
- 'Escape'-codes
- Escape-codes gebruik je voor verschillende doeleinden:
- Besturen van tekst-uitvoer: regeleinde, nieuwe pagina.
- Voorkomen dat karakters onjuist worden geïnterpreteerd door de browser, bijv. aanhalingstekens.
- Invoegen van speciale karakters die op het toetsenbord niet voorkomen (Latin-1 code of Unicode, bijvoorbeeld ç of ¿)
- Hieronder volgt een opsomming van de mogelijkheden in JavaScript:
\n Newline (nieuwe regel) \t Tab \' Apostrof of enkel aanhalingsteken dat de tekenreeks niet afsluit. \" Dubbel aanhalingsteken dat de tekenreeks niet afsluit. \\ Enkele backslash \ooo Teken dat bepaald wordt door het octale getal ooo. Latin-1-code. \xhh Teken dat bepaald wordt door het hexadecimale getal hh. Latin-1-code. \uhhhh Teken dat bepaald wordt door het hexadecimale getal hhhh. Unicode. \z Elk ander teken z dat hierboven niet werd genoemd. - Hieronder een aantal verouderde zaken, die je in heel oude code nog kunt tegenkomen:
\a Geef een pieptoon \b Backspace (één teken terug) \f Form feed (nieuwe bladzijde) \r Carriage Return (regeleinde) - Gebruik:
- Zet de escape-codes gewoon midden in de string.
- Voorbeeld: de code
document.write('Hier staan een \" \\ dubbel aanhalingsteken en een
backslash')
toont op het scherm:
- Niet al deze codes werken met document.write. Om bijvoorbeeld een regeleinde in te bouwen moet je een <br>-tag gebruiken.
- Deze codes kunnen ook gebruikt worden met de functions window.alert(), window.confirm() en window.prompt(). Zie het item Message-boxen voor een beschrijving.
Deze functies maken geen deel (meer) uit van de huidige JavaScript-standaard. Veel browsers ondersteunen ze, maar de werking kan per browser verschillen. Het effect is dus tot op zekere hoogte onvoorspelbaar. In voorkomende gevallen is het beter om CSS te gebruiken, dat is veiliger.
Opmerking:
Gebruik escape-codes alleen als het echt nodig is. Het blijkt meestal vanzelf dat je een escape-code moet
gebruiken, als bijvoorbeeld strings niet (helemaal) worden getoond op je pagina.