6.10. Stringek

Default book

A stringek is objektumok

A stringek 0 vagy több karaktert tartalmazhatnak.

var x ="Gipsz Jakab";

Összefűzhető több szöveg is.

var x = "Gipsz Jakab";
var y = "az általános alany";
var z = x + y;

Szövegkezelő függvények / metódusok / tulajdonságok.

Valójában a stringek is objektumok!

var str = "Kérlek keresd meg a szó elejét";

//A string karaktereinek száma (hossza)
var hossz = str.length;

//Részstring keresése egy stringben. az eredmény 0, ha a legelső karaktert találtuk mreg, 1, 2, 3, ...
var pos = str.indexOf("keresd");
//A részstring utolsó előfordulását keresi
var pos1 = str.lastIndexOf("keresd");

//A fenti esetekben -1 az eredmény, ha nem található a részstring

//Részstring keresése. Ez nem ugyanaz, mint az előző string, mert lehet használni reguláris kifejezéseket
var pos2 = str.search("keresd");

A fenti példában lévő reguláris kifejezésekről röviden ennyit: A Reguláris kifejezés egy leírónyelv, amit kifejezetten keresésekre fejlesztettek ki és amellyel bonyolult feltételrendszer szerint lehet keresni. Gondoljuk végig,  hogy egy tetszőleges TAG megkeresése egy stringben nem feltétlenül egyszerű feladat, mert nem tudjuk, hogy hány paramétert használunk benne és még sok egyéb is közrejátszik.

A reguláris kifejezésekről itt találhatók leírások magyarul:

Online reguláris kifejezés teszt és hibakereső oldal. Rendszeresen használom!!!

További string metódusok

Kivágások

Ezek a metódusok egy részstringet adnak vissza eredményül:

  • slice(start, end) - A részstring kezdetét és a végét kell megadni. A javascriptben a string első karakterének indexe 0.
  • substring(start, end) - A részstring kezdetét és a végét kell megadni. Hasonlít a slice-hoz, de nem fogad el negatív számokat.
  • substr(starts, hossz) - Hasonlít a slice()-hoz, de a második paraméter a hossz paraméter. Ha elmarad a hossz paraméter, akkor a string végéig tart.
var str = "Kérlek keresd meg a szó elejét";

// 1. karaktertől az 5. karakterig - valójában tehát a másodiktól a hatodikig...
var s1 = str.slice(1,5); 

// Ha a kezdet és a vég negatív szám, akkor a string végéről indul
var s2 = str.slice(-1,-3);

// Ha elhagyjuk a második paramétert, akkor a string végéig tart a részstring.
var s3 = str.slice(7);

str.slice(1,5) - 1. karaktertől az 5. karakterig - valójában tehát a másodiktól a hatodikig...

Keresés - csere

str.replace("keresett szöveg, cserélendő szöveg)

Reguláris kifejezéssel is lehet cserélni

str.replace(/keresendő szöveg/i, cserélendő szöveg)

var str = "Kérlek cseréld ki a szót, vagy a <p> taget valamire!";

// Kicserél egy szöveget
var s1 = str.replace("szót","szöveget"); 

// Kicseréli a <p> taget.
var s2 = str.replace(/<p>/i, "egy");

// kicseréli az e betü minden előfordulását 'x'-re
var s3 = str.replace(/e/g,"x");

Stringek összefűzése

  • str.concat() - összefűz tetszőleges számú stringet
var text1 = "Valami ";
var text2 = "valahová."

var text3 = text1.concat(" megy ",text2);

//Ugyanazt az eredményt adja, mint az alábbi kifejezés
var text4 = text1 + " megy " + text2;

Kisbetű nagybetű konverzió

  • str.toLowerCase() - csupa kisbetű lesz az eredmény
  • str.toUpperCase() - csupa nagybetű lesz az eredmény
var text1 = "Valami Megy Valahová ";

//csupa kisbetű lesz
var text2 = text1.toLowerCase();

//csupa nagy betű lesz
var text2 = text1.toUpperCase();

A szöveg elejéről és a végéről a whitespace-ek eltüntetése

str.trim() - A szöveg elejéről és a végéről a whitespace-ek eltüntetése. Több más nyelven is használható:

var text1 = "       Hello World!          ";

//Eltűnnek a szóközök az elejéről és a végéről
var text2 = text1.trim();

Megjegyzések:

  • IE8  és a régebbi böngészők nem támogatják!
  • web oldalon adatok bevitelekor gyakran használjuk, hogy a véletlenül bekalapált bevezető és a végén lévő szóközöket levágjuk!

A szöveg kiegészítése megfelelő hosszra

  • padStart(hossz, karakter) - a szöveg elejéhez ad annyi karaktert, hogy a hossz megadott legyen
  • padEnd(hossz, karakter); - a szöveg végéhez ad annyi karaktert, hogy a hossz megadott legyen
var text1 = "Hello World!";

//Kiegészíti a string elejét 0-kkal
var text2 = text1.padStart(5,0);
//Az eredmény: 00005
var text3 = text1.padEnd(5,0);
//Az eredmény: 50000