Autor | Zpráva | ||
---|---|---|---|
Honza_n Profil * |
#1 · Zasláno: 6. 7. 2010, 22:25:20
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 |
#2 · Zasláno: 6. 7. 2010, 22:26:57
Honza_n:
regulár? |
||
Honza_n Profil * |
#3 · Zasláno: 6. 7. 2010, 22:34:30
nevím a jak?
|
||
_es Profil |
#4 · Zasláno: 6. 7. 2010, 22:59:45
Honza_n:
var s1 = "ice", s2 = "ce"; alert(s1.lastIndexOf(s2)); // výsledok 1, teda od druhého znaku |
||
Honza_n Profil * |
#5 · Zasláno: 6. 7. 2010, 23:47:17
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 * |
#6 · Zasláno: 6. 7. 2010, 23:56:44
Dobré už to mám
var s1 = "ice"; alert(s1.search(/ce$/)); |
||
_es Profil |
#7 · Zasláno: 7. 7. 2010, 00:14:27 · Upravil/a: _es
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 alert(s1.indexOf(s2, s1.length - s2.length) !== -1); // true alebo false, toto by malo byť asi najrýchlejšie |
||
Honza_n Profil * |
#8 · Zasláno: 7. 7. 2010, 00:46:03
_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 * |
#9 · Zasláno: 7. 7. 2010, 08:39:42
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 |
#10 · Zasláno: 7. 7. 2010, 08:53:52
|
||
Honza_n Profil * |
#11 · Zasláno: 7. 7. 2010, 09:08:25
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 |
#12 · Zasláno: 7. 7. 2010, 09:26:27
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 * |
#13 · Zasláno: 7. 7. 2010, 10:20:36
Když nepoužiju regulární výraz tak jak to mám použít, stejně jako slice? -s2.length
|
||
_es Profil |
#14 · Zasláno: 7. 7. 2010, 13:28:02
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 * |
#15 · Zasláno: 7. 7. 2010, 13:52:38
Jo, už tě chápu. Takže zkombinovat split() a slice().
|
||
Honza_n Profil * |
#16 · Zasláno: 8. 7. 2010, 23:07:27
_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 |
#17 · Zasláno: 8. 7. 2010, 23:20:33
Honza_n:
Pomýlil som si to s inverznou metódu join pre polia, kde to tak platí.
|
||
Časová prodleva: 15 let
|
0