Autor Zpráva
Tomáš Jelínek
Profil
Hledal jsem na googlu a dopídit odpovědi jsem se nemohl.

Jaká je funkce na nahrazení určitého znaku nebo řetězce nějakým jiným znakem/řetězcem? Jaká je funkce na spočítání výskytu určitého znaku v řetězci? Prosím o vysvětlení syntaxe těchto funkcí, budu vděčný za ukázku.
Díky
Witiko
Profil
"abcd".replace("a", "c"); => "cbcd"
"abcd".replace(/./g, "e"); => "eeee"

String.prototype.kolik = function(needle) {
  for(var num = 0, from = 0;
          from = this.indexOf(needle, from) + 1; num++); return num;
};

"abcdabcd".kolik("a"); => 2
Tomáš Jelínek
Profil
No jelikož jsem ještě neviděk, aby se psalo }; a chybová konzolami hlásí skoro na každém řádku chybu, tak prosím, aby mi někdo poslal nějaký jiný zdrojový kód, nejlépe s vysvětlivkami.
Dík
Yur4Y
Profil
Witikova funkcia na počítanie výskytu znaku je príliš komplikovaná ;) čo takto?
var match = "reťazec".match(/x/g), //hľadáme znak "x"
  count = !!match && match.length;

K tej prvej otázke, https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace
Witiko
Profil
Tomáš Jelínek:
No jelikož jsem ještě neviděk, aby se psalo };
To neznamená, že to je nesprávně. Ten středník tam není povinný, protože konec řádku příkaz ukončuje, nicméně při použití minifikátorů kódu pak dochází k problémům. Zkus si spustit následující: var a = function() {}alert("a");

a chybová konzolami hlásí skoro na každém řádku chybu
To bude nejspíš tím, že => není součástí syntaxe javascriptu a má jít tedy jen o znázornění návratové hodnoty. Za to se omlouvám, příště to hodím do neškodného komentáře.

Yur4Y:
príliš komplikovaná ;)
Ano, jedná se totiž o hledání určitého textu, ne hledání podle regulárního výrazu. I tahle tvá funkce by musela zahrnout automatické escapování součásti syntaxe regulárních výrazů, pokud by měla fungovat pro libovolný řetězec, čímž by se stala ještě mnohonásobně komplikovanější.

!!match
To je ale komplikované, stačí jen match. :-)
Tomáš Jelínek
Profil
Díky za vysvětlení, říkal jsem si, co tam některé věci dělají :)

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