| Autor | Zpráva | ||
|---|---|---|---|
| Carduus Profil * |
#1 · Zasláno: 4. 8. 2011, 17:09:19
Zdravím,
potřebuji zjistit, jestli např. řetězec text obsahuje (. Nejlépe, aby mi to vracelo hodnotu True/False. (Myslel jsem, že to udlám přes match() ale nějak jsem tento příkaz nepochopil). Jak to mám udělat? Díky |
||
| Witiko Profil |
#2 · Zasláno: 4. 8. 2011, 17:20:28
Carduus:
text.indexOf(řetězec) !== -1
"ahoj".indexOf("světe") // -1
"ahoj světe".indexOf("světe") // 5 |
||
| ShiraNai7 Profil |
#3 · Zasláno: 4. 8. 2011, 17:20:57
if(retezec.indexOf('neco') !== -1) {
// je tam
} else {
// není tam
} |
||
| Witiko Profil |
#4 · Zasláno: 4. 8. 2011, 17:25:33 · Upravil/a: Witiko
Napišme si funkci:
String.prototype.obsahuje = function(řetězec) {
return řetězec instanceof RegExp?
řetězec.test(this):this.indexOf(řetězec) !== -1;
};
"Ahoj světe".obsahuje("ahoj"); // false
"Ahoj světe".obsahuje("světe"); // true
"Ahoj světe".obsahuje(/ahoj/i); // true„Myslel jsem, že to udlám přes match()“ Ta funkce se spíše hodí ke získání výsledků shody řetězce s regulárním výrazem. Na testování toho, jestli ke shodě došlo, se u testování podle regulárních výrazů používá funkce regulárníVýraz.test(řetězec). Pokud nám stačí zjištění, jestli se v řetězci nachází určitý text, postačí funkce řetězec.indexOf(podtext), která navrátí místo na kterém se podřetězec nachází nebo -1 v případě nenalezení. Výše uvedená funkce tyto dvě funkce spojuje pod jednu střechu.
|
||
| Carduus Profil * |
#5 · Zasláno: 4. 8. 2011, 17:38:19
Díky lidi přesně něco takového jsem potřeboval. Celkem mě překvapilo, že v JavaScript nejde toto : if ("neco" in retezec) {..... No jsme asi moc rozmazlený z Pythonu :D
|
||
| Witiko Profil |
#6 · Zasláno: 4. 8. 2011, 17:39:58 · Upravil/a: Witiko
Carduus:
To jde, ale klíčové slovo in se používá výlučně k testování, jestli objekt obsahuje určitý atribut.
"ahoj" in {ahoj: "světe"}; // truefor(var jméno in objekt) {
/* Zpracujeme objekt[jméno] */
}"řetězec" - i neměnnou (immutable) verzi, podobně jako například Java, která je objektem - new String("řetězec"). Například "indexOf" in new String("řetězec") navrací true ačkoliv řetězec daný text neobsahuje. Nicméně obsahuje takto pojmenovanou metodu. Jak vidíš, byl by v tom nehorázný brajgl. :-)
|
||
|
Časová prodleva: 14 let
|
|||
0