code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| <script language="javascript">
<!--
function replace(string, text, by)
{
var strLength = string.length, txtLength = text.length;
if((strLength == 0) || (txtLength == 0))
{
return string;
}
var i = string.indexOf(text);
if((!i) && (text != string.substring(0, txtLength)))
{
return string;
}
if(i == -1)
{
return string;
}
var newstr = string.substring(0, i) + by;
if(i + txtLength < strLength)
{
newstr += replace(string.substring(i + txtLength, strLength), text, by);
}
return newstr;
}
document.write(replace('Dit is een tekst met <a href="#">link</a>.', 'tekst', '<b>tekst</b>'));
-->
</script> |
Ik heb de volgende code in elkaar gezet om in een bepaalde string een woord te vervangen en deze vervolgens te markeren. Echter rijkt mijn Javascript kennis niet ver genoeg om de replace functie zo te maken dat er _geen_ HTML codes worden gewijzigd. Want stel ik heb een string als:
code:
1
| Dit is een <a href="string.html">string</a> |
Dan wordt dat veranderd in:
code:
1
| Dit is een <a href="<b>string</b>.html"><b>string</b></a> |
Die tweede "string" moet dan wel worden gemarkeerd, maar niet die ene string uit de link. Ik heb dit zelf wel in PHP voor elkaar gekregen, maar nu heb ik het client-side nodig...
Hoe kan ik dit oplossen?
[ Voor 10% gewijzigd door Verwijderd op 06-08-2003 11:28 . Reden: Typo ]