Autor Zpráva
Král sírů
Profil *
Zdravím. Potřeboval bych script,který by mi automaticky na stránce zaměňoval určitá slova,za slova jiná. Třeba kdyby na stránce se obevilo slovo AUTO,automaticky by se změnilo na třeba PES. Ovšem avy to fungovalo i pokud to slovo se na stránce objeví dodatečně,jako že tam nebude hned při načtení. PS: Vůbec to nemusí být na celou stánku,stačí aby mi to udělalo s jedním DIVem. Takže díky, snad pomížede. Mějte se a díky
Joker
Profil
Viz v Javascriptu String.replace()

Příklad:
var retezec = new String("Auto, kolo, auto a auto. Automatický test na automatické nahrazení")
var vystup = retezec.replace(/auto/, "pes"); // výskyty řetězce "auto"
var vystup2 = retezec.replace(/auto/i, "pes"); // výskyty řetězce bez ohledu na velikost písmen
var vystup3 = retezec.replace(/\bauto\b/, "pes"); // výskyty slova "auto"
var vystup4 = retezec.replace(/\bauto\b/i, "pes"); // výskyty slova bez ohledu na velikost písmen

Výsledkem by mělo být:
vystup: "Auto, kolo, pes a auto. Automatický test na pesmatické nahrazení"
vystup2: "pes, kolo, pes a pes. Pesmatický test na pesmatické nahrazení"
vystup3: "Auto, kolo, pes a pes. Automatický test na automatické nahrazení"
vystup4: "pes, kolo, pes a pes. Automatický test na automatické nahrazení"

edit: zpětná lomítka, njn.
Joker
Profil
Už to nechci zase upravovat, aby se nerozhodila zpětná lomítka, ale ve vystup2 druhá věta bude pochopitelně začínat "pesmatický" s malým p.
Král sírů
Profil *
Bohužel mi to nefunguje :(... Ale chyba nejspíš bude u mě,páč v js začínám. Já mám jeden DIV,ve kterém se může objevit nějaký text. Pokud zadám aby se do divu vypsalo slovo AUTO,tak se tam i slovo AUTO objeví. A já bych potřeboval aby se v něm ty slova zaměnily :(... Div má svoje ID,ale nevím jak to napojit aby se to vztahovalo právě na ten div... Když tak díky za pomoc
Joker
Profil
Napojí se to přes například:
var prvek = document.getElementById("id toho divu");
a potom prvek.innerHTML je to, co je uvnitř toho prvku (včetně případných HTML značek, ještě existuje innerText, což je bez HTML značek, ale to neumí Firefox).
Král sírů
Profil *
Díky,ale ať dělám co dělám,nemůžu to rozchodit :(... Omlouvám se jestli sem nějak moc otravnej,ale já sem lama,takže mě omluvte prosím,díky.
ten kód zatim vypadá takhle :


<input type="text" onkeyup="document.getElementById('text').innerHTML=this.value;" />
<div id="text">auto</div>


Do INPUTU zadám text,který se automaticky vpíše do DIVu "TEXT". POkud bych do inputu vepsal AUTO,v divu by se objevilo PES. Jenže mi to hlásí různý chyby (PSPad),prostě nefunguje :(.Neumím to správně naspojovat:(... Díky za pomoc :-)
Joker
Profil
Král sírů
No tak prostě místo: document.getElementById('text').innerHTML=this.value
dát: document.getElementById('text').innerHTML=nahrazeni(this.value)

a funkci nahrazeni() napsat podle toho co jsem popsal výše.
Král sírů
Profil *
a funkci nahrazeni() napsat podle toho co jsem popsal výše.
Prosím nemohl by si to trochu upřesnit ? Prosím
Král sírů
Profil *
AŤ dělám co dělám furt nějaká chyba :(....prosím poraď jaká má být ta funkce nahrazeni. Nevim proč,ale furt nejde :(...díkyyy
Chamurappi
Profil
Reaguji na Jokera:
ještě existuje innerText, což je bez HTML značek, ale to neumí Firefox
Umí to pod úžasnějším názvem textContent.

Reaguji na Krále sírů:
PLS help
Sorry baby, já vůbec neznat tuto jazyk.

<input type="text" onkeyup="document.getElementById('text').innerHTML=this.value;" />
Dovolíme návštěvníkovi vyvolat žlutou smrt?

AŤ dělám co dělám furt nějaká chyba :(
Cílem je vyřešit problém, nebo ho uhodnout? Ukaž živou nefunkční ukázku.
Joker
Profil
Chamurappi
Umí to pod úžasnějším názvem textContent.
Vida, dík za informaci. Takže s menší komplikací by to šlo. I když tady ze zadání problému není zřejmé, jestli by bylo lepší innerText nebo innerHTML.

Král sírů
AŤ dělám co dělám furt nějaká chyba
To je jak ten vtip s hlášením problémů na letadle:
Problém: Něco je uvolněno v pilotní kabině. Mechanik: Něco bylo utaženo v pilotní kabině.

Co tak nějaký bližší popis?
Účel téhle diskuse není, že tazatel napíše problém a někdo mu (nejlépe zadarmo a do půl hodiny) dodá kompletní řešení.
Král sírů
Profil *
Účel téhle diskuse není, že tazatel napíše problém a někdo mu (nejlépe zadarmo a do půl hodiny) dodá kompletní řešení.
Já vím, jenže mi to vůbec nejde :(... A nevím jak má ta funkce vypadat,a proto se ptám... Prosím pomozte :'(
Joker
Profil
A nevím jak má ta funkce vypadat
Vždyť jsem to psal hned ve svém prvním příspěvku.
Například:
function nahrazeni(retezec){
var r = new String(retezec);
return(r.replace(/\bco\b/, "čím"));
}
Král sírů
Profil *
OMG fakt moc díííky....funguje..super...díky,omlouvám se že sem tak votravoval...ale moc díky
Král sírů
Profil *
Ještě bych měl pár dotazů. Jak udělat aby to měnilo několik výrazů....takže třeba AUTO na PES a DUM na KOCKA. Zkoušel jsem to různě kombinovat,ale pořád (překvapivě) to házelo chyby. A ješté jeden. Jako to co se bude měnit mám nastavený ^ + nějaké číslo (např "^1). Takže třeba ^1 by se měnilo na něco. Když tam zadám ^1 (myslím do té funkce),tak to funguje pouze když to vložím do uvozovek ("^1"),a ne do lomítek (/^1/). To by mi ani tak nevadilo,ale pokud se tam to ^1 objeví vícekrát,tak se změní pouze ten první,ostatní zůstanou stejný,protože pokud tam nejsou lomítka,tak za to nemůžu dát písmeno g,který by spůzobilo že by se změnily všechny ^1 v textu. Nevíte co s tím ? Když tak moc díky
Joker
Profil
ad vícekrát za sebou: stačí si udělat proměnnou a v ní ty řetězce postupně nahrazovat a na konci vrátit její obsah.

ad stříška: ono to totiž bere jako regulární výraz a v regulárním výrazu ^ znamená začátek řetězce. Je potřeba to escapovat zpětným lomítkem, ^
Pro jistotu, stejně je potřeba escapovat i další znaky: .+*?[](){}-\$ ...a to jsem určitě na něco zapomněl.
Joker
Profil
Je potřeba to escapovat zpětným lomítkem, ^
Je potřeba to escapovat zpětným lomítkem, \^
- fórum mi sežralo zpětné lomítko (a původní příspěvek už radši needituju, aby mi nerozhodilo zas něco jiného)
Král sírů
Profil *
Díky,s tím ^ si mi moc pomohl. Ale to s téma několika výrazama sem nepochopil :-(
los
Profil *
Král sírů
Nebolo by pre teba jednoduchšie a rýchlejšie, keby si si najprv prečítal niečo o regulárnych výrazoch a až potom sa prípadne pýtal? Napr.: http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:Regular _Expressions

text = text.replace(/auto|pes|dum/gi, "kocka");
Král sírů
Profil *
text = text.replace(/auto|pes|dum/gi, "kocka");
Díky,ale bohužel to není to co sem chtél. potřeboval bych aby se slovo AUTO změnilo za slovo PES a DUM za KOCKA. tady se méní AUTO,PES a DUM na KOCKA. Zkoušel jsem něco sosnout z toho odkazu, dosáhl sem výsledku :

text.replace(/AUTO/g, "PES" + /DUM/g, "KOCKA");

Ale nefunguje ...co jsem udělal špatně ??
los
Profil *
Aha, zle som prečítal zadanie. Môžeš napr. zavolať viackrát za sebou replace: text = text.replace(/auto/gi, "pes").replace(/dum/gi, "kocka");
Král sírů
Profil *
Jo...díky moooc.....ste borci,fakt moc dííky
peta
Profil
jakpsatweb - ochrana mailu (ale nevim, kde to presne je, mozna v javascript, mozna v navodech)
tam by mela byt finta zameny zavinace

regularni vyrazy zde
http://www.volny.cz/peter.mlich/www.htm#mssub19

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: