webForumDet fria alternativet

Skriva om Regexp?

ASP

2 svar · 1 189 visningar · startad av Inferis

Medlem sedan sep. 2000667 inlägg
Frågan#1

Försöker skriva om följande kod till asp, men det går inte så bra.
Är det någon som vill hjälpa mig?

<?php
function toLink($text){
        $text = html_entity_decode($text);
        $text = " ".$text;
        $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
                '<a href="\\1">\\1</a>', $text);
        $text = eregi_replace('(((f|ht){1}tps://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
                '<a href="\\1">\\1</a>', $text);
        $text = eregi_replace('([[:space:]()[{}])([url]www.[-a-zA-Z0-9@:%_\+.~#?&//=]+[/url])',
        '\\1<a href="http://\\2">\\2</a>', $text);
        $text = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})',
        '<a href="mailto:\\1">\\1</a>', $text);
        return $text;
}
?>

Mitt försök:

Function toLink(text)
    Set regExp = New regexp
    regExp.Global = true
    regExp.IgnoreCase = true
        text = html_entity_decode(text)
        text = " ".text
        text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
                '<a href="\\1">\\1</a>', text);
        text = eregi_replace('(((f|ht){1}tps://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
                '<a href="\\1">\\1</a>', text);
        text = eregi_replace('([[:space:]()[{}])([url]www.[-a-zA-Z0-9@:%_\+.~#?&//=]+[/url])',
        '\\1<a href="http://\\2">\\2</a>', text);
        text = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})',
        '<a href="mailto:\\1">\\1</a>', text);

    Set RegExp = Nothing
    makeTags = text
End Function
Medlem sedan juni 20019 519 inlägg
#2

Vad skall din metod ha för namn? makeTags eller toLink?

något i stil med:

Function toLink(text)
	Dim myRegExp

	text = Server.HTMLEncode(text)

	Set myRegExp = New RegExp

	myRegExp.IgnoreCase = True
	myRegExp.Global = True

	'URL Replace
	myRegExp.Pattern = "(\b(f|ht)tps?://[-a-zA-Z0-9@:%_\+.~#?&//=]+\b)"
	text = myRegExp.Replace(text, "<a href=""$1"">$1</a>")

	'Email Replace
	myRegExp.Pattern = "(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b)"
	text = myRegExp.Replace(text, "<a href=""mailto:$1"">$1</a>")

	Set RegExp = Nothing

	toLink = text

End Function

Borde vara det du är ute efter, e-post och url:er (http,ftp,ftps,https)

Medlem sedan sep. 2000667 inlägg
#3

Tack! Du är en ängel!

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)