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"}; // true for(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: 13 let
|
0