JavaScript Academy · Lektion

Inputvalidering og det grundlæggende i escaping

Validér og normalisér input med små allowlists og guards; escape risikable tegn, før tekst vises.

Lektion 1 af 38 trin

Inputvalidering og det grundlæggende i escaping er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 1 af 3. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 3 lektioner i alt.

Det store billede

Mål: Gør inddata kedelige og sikre.

  • Brug vagtbetingelser til at afvise tidligt
  • Foretræk tilladelseslister frem for uklare regler
  • Normalisér til en enkel form
  • Escap specialtegn, før du viser tekst
Inputvalidering og det grundlæggende i escaping — illustration 1

Grundlæggende talvalidering

Tilføj enkle valideringer: tjek typen, tjek intervallet, og normalisér til en endelig værdi.

// Validate age: number and range guard
function parseAge(input) {
  // trim and parse
  const n = Number(input);
  if (!Number.isFinite(n)) return null; // reject non-numbers
  if (n < 0 || n > 130) return null;    // reject out-of-range
  return Math.floor(n);                  // normalize to integer
}

console.log("age ok:", parseAge("21"));
console.log("age bad:", parseAge("twenty"));
Inputvalidering og det grundlæggende i escaping — illustration 2

Escapér til sikker visning

Før du viser brugerens tekst, skal du escapere specialtegn, så brugerfladen behandler den som ren tekst.

// Escape a few risky characters before displaying in HTML contexts
function escapeText(s) {
  if (typeof s !== "string") return "";
  return s
    .replaceAll("&", "&amp;")
    .replaceAll("<", "&lt;")
    .replaceAll(">", "&gt;")
    .replaceAll("\"", "&quot;")
    .replaceAll("'", "&#39;");
}

console.log("escaped:", escapeText("<b>Hello & bye</b>"));
Inputvalidering og det grundlæggende i escaping — illustration 3

Tilladelseslister i praksis

Foretræk tilladelseslister til faste mængder (f.eks. koder eller roller). Normalisér store og små bogstaver samt mellemrum.

// Allowlist example: only certain country codes
const ALLOWED = new Set(["TR", "US", "DE", "GB"]);

function parseCountry(code) {
  if (typeof code !== "string") return null;
  const up = code.trim().toUpperCase();
  if (!ALLOWED.has(up)) return null; // reject unknown
  return up; // normalized
}

console.log("country ok:", parseCountry("tr"));
console.log("country bad:", parseCountry("xx"));
Inputvalidering og det grundlæggende i escaping — illustration 4

Lille objektvalidator

Kontrollér datatypen og grænserne, og returnér derefter en normaliseret form, som resten af koden kan stole på.

// Validate a tiny user object and normalize
function validateUser(input) {
  if (typeof input !== "object" || input === null) return null;

  const nameOk = typeof input.name === "string" && input.name.trim().length >= 1 && input.name.trim().length <= 40;
  const ageOk = parseAge(input.age) !== null;

  if (!nameOk || !ageOk) return null;

  return {
    name: input.name.trim(),
    age: parseAge(input.age)
  };
}

console.log("user ok:", validateUser({ name: " Ayla ", age: "22" }));
console.log("user bad:", validateUser({ name: "", age: "old" }));
Inputvalidering og det grundlæggende i escaping — illustration 5

Gode defensive vaner

Råd:

  • Validér ved grænserne (brugerinput, netværk).
  • Brug tilladelseslister, intervaller og datatypekontroller.
  • Normalisér én gang, og hold resten enkelt.
  • Escapér tekst, før du viser den til brugerne.
Inputvalidering og det grundlæggende i escaping — illustration 6

Test i grundlæggende defensiv inputhåndtering

Hurtigt tjek: Mønster for sikkert input.

Inputvalidering og det grundlæggende i escaping — illustration 7

Opsamling

Opsamling: Beskyt tidligt, brug tilladelseslister, normalisér til en sikker form, og escapér før visning. Hold hvert trin lille og letlæseligt.

Inputvalidering og det grundlæggende i escaping — illustration 8
Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
59
Lektioner
200

Ofte stillede spørgsmål

Er lektionen “Inputvalidering og det grundlæggende i escaping” gratis?

Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Inputvalidering og det grundlæggende i escaping”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Inputvalidering og det grundlæggende i escaping”?

Validér og normalisér input med små allowlists og guards; escape risikable tegn, før tekst vises. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på JavaScript Academy?

Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 3.

Hvor lang tid tager lektionen “Inputvalidering og det grundlæggende i escaping”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?

Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Inputvalidering og det grundlæggende i escaping
  2. Sikker sammenfletning af objekter; freezing og sealing
  3. Error boundaries (begrebsmæssigt) uden frameworks
← Tilbage til JavaScript Academy