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 |
#2 · Zasláno: 28. 5. 2010, 13:05:41
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 * |
#3 · Zasláno: 28. 5. 2010, 13:16:20
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 * |
#4 · Zasláno: 28. 5. 2010, 13:30:34
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 |
#5 · Zasláno: 28. 5. 2010, 13:34:18
Čo presne je v premennej x?
|
||
želba Profil * |
#6 · Zasláno: 28. 5. 2010, 14:02:35
Yur4Y
text/html |
||
nightfish Profil |
#7 · Zasláno: 28. 5. 2010, 14:26:48
želba:
„text/html“ to je mime typ obsahu proměnné a nebo samotná hodnota proměnné? |
||
želba Profil * |
#8 · Zasláno: 28. 5. 2010, 14:50:02
<div id="textarea">Ahoj<br>Jak se máš?</div>
var x = getID('chat_textarea').innerHTML; // Příklad |
||
želba Profil * |
#9 · Zasláno: 28. 5. 2010, 14:51:38
Oprava:
<div id="chat_textarea">Ahoj<br>Jak se máš?</div> var x = getID('chat_textarea').innerHTML; |
||
Joker Profil |
#10 · Zasláno: 28. 5. 2010, 15:32:02
ž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 * |
#11 · Zasláno: 28. 5. 2010, 15:35:30
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 |
#12 · Zasláno: 28. 5. 2010, 15:41:38
Reaguji na želbu:
„// Hodí chybu.“ Nehodí. |
||
želba Profil * |
#13 · Zasláno: 28. 5. 2010, 20:24:03
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 * |
#14 · Zasláno: 28. 5. 2010, 20:24:46
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 |
#15 · Zasláno: 28. 5. 2010, 20:35:57
Pred getElementById chýba document., inak je kód funkčný.
|
||
Davex Profil |
#16 · Zasláno: 28. 5. 2010, 21:09:23 · Upravil/a: Davex
ž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. |
||
Časová prodleva: 14 let
|
0