Autor Zpráva
želba
Profil *
Dobrý den, mám tento kód:

   var x = getID('chat_textarea').innerHTML;
   var r = new RegExp(x, "g");


Problém je vtom že JS v prohlížeči mi píše: unmatched ) in regular expresion
na řádku kde je var r ...

Děkuji za rady.
Yur4Y
Profil
Snažíš sa vytvárať regulárny výraz podľa toho, čo je v textarei. Zrejme to nie je to, čo chceš dosiahnuť, takže by bolo dobré napísať, čo chceš spraviť.
Okrem toho, ak je element getID('chat_textarea') naozaj <textarea>, radšej použi atribút value miesto innerHTML.
želba
Profil *
ve var x vůbec není problém. Dám alert(x) a vypíše se mi obsah.

Každopádně tu dám radši celý kód:

success: function(returnedvalue){
var x = getID('chat_textarea').innerHTML;
var r = new RegExp(x, "g");
getID("chat_textarea").innerHTML = returnedvalue.replace(r, "") + getID("chat_textarea").innerHTML;
}

chat_textarea je DIV element (id='chat_textarea') a funkce getID je nadefinovana jako getElementByID

No a jak to má pracovat je na dlouho, někdo pochopí podle kódu, stručně řečeno je to CHAT a ta SUCCESS je vrácení AJAXU potom se "returnedvalue" zkrátí o to co už vypsáno je. Takže se v závěru vypíše "zbytek" + to co už v dokumentu je.
želba
Profil *
Nehledejte vtom nic složitého chyba je jasná:
když dám:

var r = new RegExp("ahoj", "g");

Tak to jede a když dám misto patternu proměnou tak to nejede:

var r = new RegExp(x, "g");

Takže nevím jak dát do regexp promenou
Yur4Y
Profil
Čo presne je v premennej x?
želba
Profil *
Yur4Y
text/html
nightfish
Profil
želba:
text/html
to je mime typ obsahu proměnné a nebo samotná hodnota proměnné?
želba
Profil *
<div id="textarea">Ahoj<br>Jak se máš?</div>

var x = getID('chat_textarea').innerHTML;

// Příklad
želba
Profil *
Oprava:

<div id="chat_textarea">Ahoj<br>Jak se máš?</div>

var x = getID('chat_textarea').innerHTML;
Joker
Profil
želba:
Chcete nechat uživatele ručně zadávat regulární výraz? Co má ta funkčnost dělat?
K nějaké aplikaci pro programátorské guru mi moc nesedí ten dotaz tady a pokud to bude pro běžné uživatele, tak drtivá většina ani z těch počítačově znalých uživatelů nedokáže formulovat regulární výraz.
želba
Profil *
Tak znovu a nejjednodušeji:

var s = "ahoj jak se máš?", r = RegExp("ahoj", "g");
alert(s.replace(r, ""));

// Alertne: jak se máš?

var x = "ahoj";
var s = "ahoj jak se máš?", r = RegExp(x, "g");
alert(s.replace(r, ""));

// Hodí chybu.
Chamurappi
Profil
Reaguji na želbu:
// Hodí chybu.
Nehodí.
želba
Profil *
jj máš pravdu, zapoměl jsem to otestovat... Prosím Chamurappi pověz mi proč to nejede takhle:

<div id='chat_textarea'>ahoj</div>

var x = getElementById('textarea').innerHTML;
var s = "ahoj jak se máš?", r = RegExp(x, "g");
alert(s.replace(r, ""));

dík za radu
želba
Profil *
Oprava:

jj máš pravdu, zapoměl jsem to otestovat... Prosím Chamurappi pověz mi proč to nejede takhle:

<div id='chat_textarea'>ahoj</div>

var x = getElementById('chat_textarea').innerHTML;
var s = "ahoj jak se máš?", r = RegExp(x, "g");
alert(s.replace(r, ""));

dík za radu
Yur4Y
Profil
Pred getElementById chýba document., inak je kód funkčný.
Davex
Profil
želba:
Možná ti nějaká varianta obsahu bloku #chat_textarea nefunguje díky tomu, že mají některé znaky v regulárním výrazu speciální význam, což nijak na vstupu neošetřuješ. Pokud nahrazuješ jen začátek, tak by bylo lepší, použít k nahrazení kombinaci metod indexOf() a substr() nebo nepoužívat pro nahrazení regulární výraz.

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