JavaScript Academy · Lektion

Validering och vanliga fallgropar

Validera hela strängar med ankare, undvik girig övermatchning, använd ordgränser, lägg till enkla extra kontroller och se upp med /g tillsammans med test().

Lektion 3 av 38 steg

Validering och vanliga fallgropar är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 3 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Validering av hela strängar

Mål: Validera säkert utan överraskningar.

  • Använd ^ och $ för att matcha hela strängen
  • Undvik girig övermatchning och använd lazy *? när det behövs
  • Använd \\b för ordgränser
  • Se upp med /g tillsammans med test()
Validering och vanliga fallgropar — illustration 1

Ankare i praktiken

Lägg till ^ och $ så att delvisa matchningar inte slinker igenom.

// Validate 4–6 digits ONLY (no spaces, no letters)
function isPin(text) {
  const re = /^\\d{4,6}$/;
  return re.test(text);
}

console.log("1234 ->", isPin("1234"));
console.log("12 34 ->", isPin("12 34"));
console.log("a123 ->", isPin("a123"));
Validering och vanliga fallgropar — illustration 2

Undvik övermatchning

Giriga .* fångar det längsta intervallet. Lägg till ? för den kortaste matchningen mellan markörerna.

// Greedy (.*) vs lazy (.*?)
const text = "say \"hi\" and \"bye\"";

// Greedy: eats too much
const g = text.match(/".*"/);
console.log("greedy:", g && g[0]);

// Lazy: shortest between quotes
const l = text.match(/".*?"/g);
console.log("lazy:", l);
Validering och vanliga fallgropar — illustration 3

Ordgränser \\b

\\b matchar gränser mellan ordtecken och icke-ordtecken och är användbart för hela ord.

// Use \\b to match a whole word (not inside another)
const s = "restart start up";

console.log("has start word?", /\\bstart\\b/.test(s));    // true
console.log("matches restart?", /\\brestart\\b/.test(s));  // true
console.log("start inside restart?", /start/.test("restart")); // true (partial)
Validering och vanliga fallgropar — illustration 4

Kombinera kontroller på ett säkert sätt

För nybörjare: kombinera en liten regex med extra kontroller (trimning, maximal längd). Undvik stora mönster.

// Small, beginner-friendly email-like check (not RFC-complete)
// Strategy: small regex + extra length checks
function isEmailLite(text) {
  if (typeof text !== "string") return false;
  if (text.length > 254) return false;          // cap length
  const re = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;  // basic shape
  return re.test(text.trim());
}

console.log("ok:", isEmailLite("a@b.co"));
console.log("bad space:", isEmailLite("a @b.co"));
console.log("too basic:", isEmailLite("abc"));
Validering och vanliga fallgropar — illustration 5

Fallgrop med global flagga

Flaggan g flyttar en intern pekare vid test(). Hoppa över g när enkla booleska resultat behövs för separata indata.

// Using /g with test() changes lastIndex and can surprise you
const r = /a/g;

console.log("1st:", r.test("a")); // true
console.log("2nd:", r.test("a")); // false (cursor moved)
console.log("3rd:", r.test("a")); // true again

// Safer: avoid /g when repeatedly calling test() on separate strings
function hasA(text) {
  return /a/.test(text); // no g flag
}
console.log("safe:", hasA("a"), hasA("a"));
Validering och vanliga fallgropar — illustration 6

Quiz om ankare för validering

Snabb kontroll: Validering av hela strängar.

Validering och vanliga fallgropar — illustration 7

Sammanfattning

Sammanfattning: Validera hela strängar med ^...$, använd lazy *? för att undvika övermatchning, lägg till \\b för hela ord, kombinera små regexar med enkla extra kontroller och undvik /g vid upprepade anrop till test().

Validering och vanliga fallgropar — illustration 8
Gratis att börja

Lär dig JavaScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
59
Lektioner
200

Vanliga frågor

Är lektionen ”Validering och vanliga fallgropar” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Validering och vanliga fallgropar”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Validering och vanliga fallgropar”?

Validera hela strängar med ankare, undvik girig övermatchning, använd ordgränser, lägg till enkla extra kontroller och se upp med /g tillsammans med test(). Ni övar på JavaScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig JavaScript Academy?

Du behöver inga förkunskaper. Utbildningen i JavaScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 3.

Hur lång tid tar lektionen ”Validering och vanliga fallgropar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här JavaScript Academy-lektionen?

Ja. Varje JavaScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Grunderna i regex — literaler, test, ankare och flaggor
  2. Grupper, fångster och Replace
  3. Validering och vanliga fallgropar
← Tillbaka till JavaScript Academy