Ik ben nou al een tijdje met reguliere expressies in ASP aan het knoeien. Het werkt allemaal aardig, maar 1 ding kom ik echt niet uit. Zoeken op het internet geeft weinig resultaten en al helemaal geen bruikbare.
Het probleem is als volgt:
Met behulp van reguliere expressies wil ik urls in een string herkennen en deze omzetten naar een link die naar die url verwijst.
Dus: http://www.google.com --> <a href="http://www.google.com>http://www.google.com</a> (React kan het wel goed
)
Ik probeer dit op de volgende manier te doen:
De functies die ik hiervoor gemaakt heb zijn:
Dit gaat allemaal hartstikke goed, tenzij je bijvoorbeeld de volgende string als invoer geeft:
http://www.google.com/blablabla/typerdetyp.htm ........ http://www.google.com
In dit geval wil hij http://www.google.com in de url http://www.google.com/blablabla/typerdetyp.htm die inmiddels tot link gemaakt is nogmaals vervangen. Dit geeft een grote rommel.
Heeft iemand een idee hoe ik dit kan oplossen?
Alvast heel erg bedankt!
Het probleem is als volgt:
Met behulp van reguliere expressies wil ik urls in een string herkennen en deze omzetten naar een link die naar die url verwijst.
Dus: http://www.google.com --> <a href="http://www.google.com>http://www.google.com</a> (React kan het wel goed
Ik probeer dit op de volgende manier te doen:
ASP:
1
2
3
4
5
6
7
8
9
10
11
| dim newstr, matched matched = regexMatch("\b(http://|www\.)[\w\.?=/\\#]+\b", tekst) newstr = tekst For Each m In matched newstr = regexReplace(newstr, "\b" & escape(m.Value) &_ "\b", "<a href='" & regexReplace("http://" &_ m.Value, "(http://){2}", "http://") & "' target='_blank'>" &_ m.Value & "</a>") Next |
De functies die ik hiervoor gemaakt heb zijn:
ASP:
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
| Function regexReplace(source, expression, replaceWith) dim regEx Set regEx = New RegExp regEx.Pattern = expression regEx.IgnoreCase = True regEx.Global = True regexReplace = regEx.Replace(source, replaceWith) End Function Function regexMatch(expression, text) dim regEx, Match, Matches Set regEx = New RegExp regEx.Pattern = expression regEx.IgnoreCase = True regEx.Global = True Set Matches = regEx.Execute(text) For Each Match In Matches RetStr = RetStr & Match.Value & "," next regexMatch = RetStr End Function Function escape(expressie) escape = regexReplace(expressie, "[\?]", "\?") End Function |
Dit gaat allemaal hartstikke goed, tenzij je bijvoorbeeld de volgende string als invoer geeft:
http://www.google.com/blablabla/typerdetyp.htm ........ http://www.google.com
In dit geval wil hij http://www.google.com in de url http://www.google.com/blablabla/typerdetyp.htm die inmiddels tot link gemaakt is nogmaals vervangen. Dit geeft een grote rommel.
Heeft iemand een idee hoe ik dit kan oplossen?
Alvast heel erg bedankt!
[ Voor 7% gewijzigd door licensed op 07-05-2003 19:01 ]