JavaScript Academy · Oppitunti

Validointi ja pienet sudenkuopat

Validoi kokonaisia merkkijonoja ankkureilla, vältä ahnetta ylimääräistä osumaa, käytä sananrajoja ja yksinkertaisia lisätarkistuksia sekä varo /g-lippua test()-metodin kanssa

Oppitunti 3/38 vaihetta

Validointi ja pienet sudenkuopat on ilmainen JavaScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu JavaScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.

Koko merkkijonon validointi

Tavoite: Validoi turvallisesti ilman yllätyksiä.

  • Käytä merkkejä ^ ja $ vastaamaan koko merkkijonoa
  • Vältä ahnetta yliosumaa; käytä tarvittaessa laiskaa merkintää *?
  • Käytä sananrajoja \\b
  • Varo /g-lippua test()-metodin kanssa
Validointi ja pienet sudenkuopat — kuvitus 1

Ankkurit käytännössä

Lisää ^ ja $, jotta osittaiset osumat eivät pääse läpi.

// 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"));
Validointi ja pienet sudenkuopat — kuvitus 2

Vältä yliosumia

Ahne .* nappaa pisimmän alueen; lisää ?, jotta saat merkkien välistä lyhimmän osuman.

// 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);
Validointi ja pienet sudenkuopat — kuvitus 3

Sananrajat \\b

\\b vastaa sana- ja muiden merkkien välisiä rajoja; siitä on hyötyä kokonaisille sanoille.

// 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)
Validointi ja pienet sudenkuopat — kuvitus 4

Yhdistä tarkistukset turvallisesti

Aloittelijoille: yhdistä pieni regex ja ylimääräiset tarkistukset (trim, enimmäispituus). Vältä valtavia kuvioita.

// 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"));
Validointi ja pienet sudenkuopat — kuvitus 5

Globaalin lipun sudenkuoppa

g-lippu siirtää sisäistä kohdistinta jokaisella test()-kutsulla. Jos tarvitset erillisille syötteille vain totuusarvon, jätä g pois.

// 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"));
Validointi ja pienet sudenkuopat — kuvitus 6

Ankkurit validoinnin testissä

Pikatarkistus: koko merkkijonon validointi.

Validointi ja pienet sudenkuopat — kuvitus 7

Kertaus

Kertaus: Validoi kokonaiset merkkijonot merkinnällä ^...$, käytä laiskaa merkintää *? yliosumien välttämiseen, lisää \\b kokonaisia sanoja varten, yhdistä pienet regexit yksinkertaisiin lisätarkistuksiin ja vältä /g-lippua toistuvien test()-kutsujen yhteydessä.

Validointi ja pienet sudenkuopat — kuvitus 8
Aloita maksutta

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
59
Oppitunnit
200

Usein kysytyt kysymykset

Onko oppitunti ”Validointi ja pienet sudenkuopat” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa JavaScript Academy-oppimispolun 3 oppituntia, myös oppitunnin “Validointi ja pienet sudenkuopat”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.

Mitä opin oppitunnilla ”Validointi ja pienet sudenkuopat”?

Validoi kokonaisia merkkijonoja ankkureilla, vältä ahnetta ylimääräistä osumaa, käytä sananrajoja ja yksinkertaisia lisätarkistuksia sekä varo /g-lippua test()-metodin kanssa Harjoittelet JavaScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni JavaScript Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin JavaScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.

Kuinka kauan ”Validointi ja pienet sudenkuopat”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä JavaScript Academy-oppitunnilla?

Kyllä. Jokainen JavaScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Regulaaristen lausekkeiden perusteet — literaalit, test, ankkurit ja liput
  2. Ryhmät, kaappaukset ja korvaaminen
  3. Validointi ja pienet sudenkuopat
← Takaisin: JavaScript Academy