Autor Zpráva
Honza_n
Profil *
Jaký příkaz použít na vyhledání podřetězce když mám např. slovo "ice" a chci zjistit jestli obsahuje slovo "ce", bráno odzadu. Tzn. ce nesmí být na začátku, ale na konci?
panther
Profil
Honza_n:
regulár?
Honza_n
Profil *
nevím a jak?
_es
Profil
Honza_n:
var s1 = "ice", s2 = "ce";
alert(s1.lastIndexOf(s2)); // výsledok 1, teda od druhého znaku
Honza_n
Profil *
No jo, ale problém je v tom, že když tam bude "icemi" Tak to taky vrátí výsledek kladný. Za ce musí být konec. Tak asi ten regulár?
Honza_n
Profil *
Dobré už to mám
var s1 = "ice";
alert(s1.search(/ce$/));
_es
Profil
Honza_n:
No jo, ale problém je v tom, že když tam bude "icemi" Tak to taky vrátí výsledek kladný. Za ce musí být konec. Tak asi ten regulár?
Netreba, ide to takto, to by malo by rýchlejšie:

alert(s1.slice(-s2.length) === s2); // true alebo false
alebo:
alert(s1.indexOf(s2, s1.length - s2.length) !== -1); // true alebo false, toto by malo byť asi najrýchlejšie
Honza_n
Profil *
_es:
Ten příklad se slice() to minus znamená že to odřezává z druhé strany? To je taky geniální.
Honza_n
Profil *
Ještě tam mám takovou situaci, že mohou být dvě koncovky oddělené čárkou takto: "emi,imi" nebo něco podobného. Nějaký způsob jak dostat obě slovíčka do pole ve tvaru ["emi","imi"]? Možná i s tou možností, že to rovnou provede tu kontrolu, zda konec koncovky obsahuje "mi", když neobsahuje tak do pole nepřidá nic.
_es
Profil
Honza_n:
Nějaký způsob jak dostat obě slovíčka do pole ve tvaru ["emi","imi"]?
Na niečo také slúži metóda split.
Iné metódy pre textové reťazce si nájdeš tu.
Metódy bez regulárnych výrazov by mali byť obvykle rýchlejšie.
Honza_n
Profil *
ten split se aplikuje takto: s.split(delimiter)? A ten delimiter je regularni vyraz předpokládám?

Tak mohl bych skloubit obě metody. Kvůli zvýšení výkonu. Nedříve bych zjistil zda řetězec obsahuje čárku a pokud ne tak provedu slice(). Pokud obsahuje čárku tak provedu split(). Většina koncovek je bez čárky.
_es
Profil
Honza_n:
A ten delimiter je regularni vyraz předpokládám?
Môže to byť aj obyčajný reťazec - to by malo byť asi o čosi rýchlejšie, než regulárny výraz.
Honza_n
Profil *
Když nepoužiju regulární výraz tak jak to mám použít, stejně jako slice? -s2.length
_es
Profil
Honza_n:
Když nepoužiju regulární výraz tak jak to mám použít
Tak isto, len dáš do metódy split obyčajný reťazec.
Ak to použiješ bez parametra, tak je oddeľovačom čiarka.
Honza_n
Profil *
Jo, už tě chápu. Takže zkombinovat split() a slice().
Honza_n
Profil *
_es:
Ak to použiješ bez parametra, tak je oddeľovačom čiarka.
Tak tě opravuji. Bez oddělovače to nerozparsuje, i když v řetězci mám čárku. Docela dlouho jsem se divil proč mi to nefunguje.
_es
Profil
Honza_n:
Pomýlil som si to s inverznou metódu join pre polia, kde to tak platí.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0