20. august 2004 - 22:25
Der er
21 kommentarer og 1 løsning
dynamisk replace
Hvis man skal replace i javascript kan man fx skrive sådan; document.getElementById('str').value.replace(/f/g,"g") på den måde erstattes f med g. Men hvis f skal komme dynamisk - altså som en streng, hvordan gør jeg så? Har prøvet med fx nedenstående med uden held tester = 'f'; alert(document.getElementById('str').value.replace(/'+tester+'/g,"g")); så hvordan gør jeg så?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
20. august 2004 - 22:31
#1
Leg lidt med tester = 'f'; r = new RegExp(tester,"ig"); alert("Forfatter".replace(r,"g"));
20. august 2004 - 22:39
#2
det så rigtigt ud :) Men hvad jeg kan ikke helt få det til at funke med en sammensat værdi; replacetxt = thetext + '$.$' + theprio; replaceins = new RegExp(replacetxt,"ig"); document.getElementById('str').value = document.getElementById('str').value.replace(replaceins,"d"); ?
20. august 2004 - 22:42
#3
det var $-tegnet den ikke kunne lide - så det er løst nu. Perfekt :) et svar eller?
20. august 2004 - 22:43
#4
Nej tak, ingen point til mig - jeg samler ikke på dem.
20. august 2004 - 22:44
#5
for hurtig :( Med replacetxt = thetext + '*.*' + theprio; replaceins = new RegExp(replacetxt,"ig"); document.getElementById('str').value = document.getElementById('str').value.replace(replaceins,"d"); nulstiller den hele min "str"?
20. august 2004 - 22:45
#6
Hvad står der i document.getElementById('str').value ?
20. august 2004 - 22:48
#7
den er dynamisk i forhold til en masse andre funktion - men der kan fx stå; L*.*2*,*S*.*1
20. august 2004 - 22:50
#8
Ok, men "*" og "." er magiske tegn i regulære udtryk. Prøv replacetxt = thetext + '\*\.\*' + theprio;
20. august 2004 - 22:51
#9
Faktisk: replacetxt = thetext + '\\*\\.\\*' + theprio;
20. august 2004 - 22:57
#10
perfekt! du ville få et stort kram hvis du sad ved siden af mig!!! :oD ... og var en pige samt så godt ud ;)
20. august 2004 - 23:02
#11
Jeg opfylder 2 ud af 3, men det er jo ikke nok ;) Og du tager bare dine point selv.
20. august 2004 - 23:02
#12
Hov - 1 ud af 3....
20. august 2004 - 23:04
#13
Forklaringen på '\\*\\.\\*' kan du også få. Når "*" og "." er magiske tegn, skal man i et regulært udtryk sætte en "\" foran for at få det ikke at være magisk, men betyde tegnet selv. Men i en JavaScript streng, kræves der to "\"-ere for at få een.
20. august 2004 - 23:05
#14
Du skal med glæde få point :) Specielt hvis du kan fixe den sidste for mig ;) var replacetxt2 = '<a href="java script:void(0)" onclick="changestr(\'' + thetext + '\',\'' + theprio + '\'); return false;" class="infotxtbold">' + thetext + ' (' + theprio + ')</a>'; replaceins2 = new RegExp(replacetxt2,"ig"); document.getElementById('strspan').innerHTML = document.getElementById('strspan').innerHTML.replace(replaceins2,"");
20. august 2004 - 23:11
#15
Der er mange magiske tegn i den streng. Lad os se: var replacetxt2 = '<a href="java script:void\(0\)" onclick="changestr\(\\\'' + thetext + '\\\',\\\'' + theprio + '\\\'\); return false;" class="infotxtbold">' + thetext + ' \(' + theprio + '\)</a>'; ....tror jeg nok...
20. august 2004 - 23:12
#16
Ja, og så skal de allesammen være der dobbelt så mange gange... var replacetxt2 = '<a href="java script:void\\(0\\)" onclick="changestr\\(\\\\\\'' + thetext + '\\\\\\',\\\\\\'' + theprio + '\\\\\\'\\); return false;" class="infotxtbold">' + thetext + ' \\(' + theprio + '\\)</a>';
20. august 2004 - 23:19
#17
need a third try? ;) Siger at tegnet ";" var ventet. I min editor bliver de 6 \ efter "thetext" og "theprio" røde - hvis det kan hjælpe?
20. august 2004 - 23:24
#18
Jo, jeg var nok lidt gavmild. Du ved: hvis een vitaminpille er sund, så spis 100. Men prøv: var replacetxt2 = '<a href="java script:void\\(0\\)" onclick="changestr\\(\\\\\'' + thetext + '\\\\\',\\\\\'' + theprio + '\\\\\'\\); return false;" class="infotxtbold">' + thetext + ' \\(' + theprio + '\\)</a>';
20. august 2004 - 23:34
#19
nej - desværre :o/
20. august 2004 - 23:44
#20
Okay, men så bøffer vi lidt flere af de \-ere var replacetxt2 = '<a href="java script:void\\(0\\)" onclick="changestr\\(\\\'' + thetext + '\\\',\\\'' + theprio + '\\\'\\); return false;" class="infotxtbold">' + thetext + ' \\(' + theprio + '\\)</a>';
20. august 2004 - 23:58
#21
nu tror jeg at jeg har fundet ud af hvad der går galt... når jeg sætter indholdet i min "strspan" så bytter javascriptet om på mine værdier. Fx hedder det ikke <a men <A ligesom class="infotxtbold" kommer til bare at hedde class=infotxtbold Derfor må jeg bruge alert for at finde frem til hvordan strengen ser ud så jeg ved hvordan replacetxt2 skal bygges op. Vender tilbage senere.
21. august 2004 - 00:24
#22
så blev det klart :) var replacetxt2 = '<a class=infotxtbold href="java script:void\\(0\\);" onclick="changestr\\(\\\'' + thetext + '\\\',\\\'' + theprio + '\\\'\\); return false;">' + thetext + ' \\(' + theprio + '\\)</a>'; mange tak for hjælpen endnu en gang :)
Vi tilbyder markedets bedste kurser inden for webudvikling