String

Innebygde funksjoner

FunksjonEksempel
s.length"abc".length === 3
s.includes"ole petter".includes("pe") === true
s.charAt"abcde".charAt(2) === "c"
s.charCodeAt"abcde".charCodeAt(2) === 99
s.endsWith"abcdef".endsWith("def") === true
s.indexOf"abcde".indexOf("c") === 2 // -1 if not found
s.match"abcdefgh".match(/[aeiouy]/gi) => ["a", "e"]
s.padEnd"1.0".padEnd(6,"0") === "1.0000"
s.padStart"1".padStart(4,"0") === "0001"
s.repeat"12".repeat(4) === "12121212"
s.replace"søvnløs".replace(/ø/g, "o") === "sovnlos"
"søvnløs".replace("ø", "o") === "sovnløs"
s.search"og dermed".search(/er/) === 4 // -1 dersom ikke funnet
s.slice"abcdefg".slice(1) === "bcdefg"
"abcdefg".slice(2,4) === "cd" // slutter rett før pos 4
s.split"a b c d".split(" ") => [ "a" , "b" , "c" ]
"a b c d".split(" ", 2) => [ "a" , "b" ]
s.startsWith"abcde".startsWith("ab") === true
s.substr"abcde".substr(1) === "bcde"
"abcde".substr(-2) === "de"
"abcdefghij".substr(2,3) === "cde"
s.toLowerCase"ABC".toLowerCase() === "abc"
s.toUpperCase"abc".toUpperCase() === "ABC"
s.trim" abc ".trim() === "abc"
s.trimStart" abc ".trimStar() === "abc "
s.trimEnd" abc ".timEnd() === " abc"

Metoder for å lage strenger med bestemt tekst

Lime sammen tekstbiter

Du kan lime sammen tekstbiter slik: let a="fire"; let b = "en" + a + "to" .
Her vil du få teksten "enfireto" som resultat. Dersom du trenger mellomrom må du ta det med eksplisitt i strengen: "fire ".

Variabler i teksten

Med det nye `backtick` hermetegnet kan du få verdier fra variable inn i tekst slik:

let navn = "ole";
let alder = 22;
let msg = `Velkommen ${ole}, du er ${alder} år gammel.`;

Erstatte markører i tekst

let data = { plass:"Oslo", antall:4, pris:5600 };
let pattern = `Velkommen til #plass#, du har bestillt
#antall# netter med overnatting. Prisen blir #pris#`;
let msg = pattern.replace(/#(\w+)#/g, (m,s) => data[s] || m );

Merk at du kan velge markører helt fritt, /#(\w+)/g vil matche #plass - trenger ikke # både før og etter. (\w+) vil matche en eller flere vanlige bosktaver a..zA..Z.
Poenget med || m er at dersom data[s] === undefined - da endres ikke teksten.
Du ser da lett feil fordi msg vil inneholde #navn# (navn finnes ikke i data).

Eksempler

Erstatte tekst

// erstatte alle små tall (1,2..9) med tallord
let rawMsg = "Du har 1 bil og kan ta 4 passasjerer"
let tall2tale = { 1:" en ", 2:" to ", 4:" fire " };
// ikke komplett ...
let niceMsg = rawMsg.replace(/ (\d) /g, (m,s) => tall2tale[s] || m);
// niceMsg === "Du har en bil ..."

Merk at vi bare erstatter tall med space rundt.

Plukke ut siste bit av en tekst

let s = "finn siste tre bokstaver";
let siste = s.substr(-3); // siste === "ver"
Last updated on