Autor Zpráva
sewerman
Profil *
Potřeboval bych poradit:
Mám formulář z kterého načítám text (vstup).
Potřebuji konkrétní znak (zadaný ve formuláři - formular1.tecka.value)
Nevím jak mám upravit funkci replace aby brala a jako řetězec

var vstup = formular1.vstup.value;
var a ;
a = formular1.tecka.value;
vstup = vstup.replace(/a/g, x);

Díky
_es
Profil
sewerman:
aby brala a jako řetězec
RegExp(a,"g")

Myslíš toto?
sewerman
Profil *
Jestkli to dobře chápu tak to bude

vstup = vstup.replace(RegExp(a,"g"), x);

pokud je to správně tak to je to co jsem měl na mysli.
sewerman
Profil *
Takhle mě to nefungeje :-(
_es
Profil
sewerman:
Ešte záleží na tom, či nebude zadaný nejaký špeciálny znak, ak treba ošetriť aj to, tak sa niečo také tu už riešilo.

mě to nefungeje
No a v premennej(?) x máš čo?
sewerman
Profil *
x není proměná to je první problém to jsem vyřešil "x"
Speciální znak bude s největší pravděpodobností zadán (tečka).
 a = RegExp(formular1.tecka.value,"g"); 
 vstup = vstup.replace(a, "x");


Kód jsem upravil a již je funkční pokud se neobjeví právě ten speciální znak (trečka). Potom skript přestane fungovat.
Jak to nejlépe ošetřit?
Nějakou funkcí na přechod na ASCII?
sewerman
Profil *
Již jsem pochopil

a = formular1.tecka.value.replace(/[.*+?^${}()|[\]\/\\]/g, '\\$&');
  a = RegExp(a,"g");
  vstup = vstup.replace(a, "x");


Díky za pomoc. Funguje jak má.
_es
Profil
sewerman:
x není proměná to je první problém to jsem vyřešil "x"

Síce sa ti v tom podarilo zorientovať a úspešne vyriešiť, no zvládnutie základov programovacieho jazyka by malo byť prvé.

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