Autor Zpráva
Beginer2
Profil *
Dobrý den,

mám znovu problém a to s javascriptovou funkcí replace

var str = ";2011,Atext text textB,a10";

var get = str.replace(eval("/;(2011),(.)*,(a10)/gi"), "$2");

alert(get);


alert mě vypíše pouze poslední písmeno "B" z druhé části řetězce. Můžete mi prosím poradit jak udělat zápis aby mi to vzalo všechny znaky od A - B (Atext text textB)?

Děkuji předem za rady.
__construct
Profil
Beginer2:
Si si istý, že chceš použiť eval? Nechápem čo sa jeho použitím snažíš dosiahnuť.

Dá sa to zapísať ako var get = str.replace(/;(2011),(.*),(a10)/gi, "$2");
Beginer2
Profil *
Pardon, neuvedl jsem to celé, ale děkuju za radu.

zde je část kódu, eval jsem použil kvůli proměnným. Pokud existuje nějaké jiné lepší řešení budu rád když mi poradíte.

function col_sel(id, idd, year, Tval){

var t_value = document.getElementById('t_value');

t_value.value=t_value.value.replace(eval("/(.*);"+year+",(.*),"+Tval+"/g"),"$2");}
Beginer2
Profil *
Předcozí příklad je špatný
function sTime(id, object, year, Tval){

var t_value=document.getElementById('t_value').value.replace(eval("/(.*);"+year+",(.*),"+Tval+"(.*)/g"), '$2');
Chamurappi
Profil
Reaguji na Beginera2:
Pokud existuje nějaké jiné lepší řešení budu rád když mi poradíte.
new RegExp("výraz", "modifikátory");
… při čemž výraz se již nepíše mezi lomítka.
peta
Profil
var t_value=document.getElementById('t_value')
.value
.replace(eval("/(.*);"+year+",(.*),"+Tval+"(.*)/g"), '$2');
.replace(new RegExp("(.*);"+year+",(.*),"+Tval+"(.*)", "g"), '$2'); // bez eval


Proc promennou neoznacis jako %%%auticko nebo %%%auticko%%%? Predpokladejme, ze %%% se bude pouzivat max pri vysvetlovani principu tohoto nahrazeni.
.replace(new RegExp("%%%"+year, "g"), 'neco');

<script>
var i, arr;
arr = ['auticko','autor'];
str = "Cervena karkulka. %%%autor%%%:Lojzek. Text";
alert(str)
for (i in arr)
 {str = str.replace(new RegExp("%%%"+arr[i]+"%%%\:([^.]*)", "g"), "$1");}
alert(str)
</script>
 


var str = ";2011,Atext text textB,a10";
var get = str.replace(eval("/;(2011),(.)*,(a10)/gi"), "$2");
var get = str.replace(eval("/;(2011),(.*),(a10)/gi"), "$2"); // oprava1 .*
var get = str.replace(eval("/;(2011),([^,]*),(a10)/gi"), "$2"); // oprava2, pokud znak neni carka
.replace(eval("/(.*);"+year+",(.*),"+Tval+"(.*)/g"), '$2'); // zajimave je, ze tady .* mas ok

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