Wenn der Benutzer in der Beispielanwendung auf die Schaltfläche „Test“ klickt und zuvor das Kontrollkästchen „
urlToATag
aktiviert hat, wird die statische
URLParser.urlToATag()
-Methode aufgerufen, um URL-Strings aus dem Wiki-Eingabestring in
<a>
-HTML-Tags umzuwandeln.
var protocol:String = "((?:http|ftp)://)";
var urlPart:String = "([a-z0-9_-]+\.[a-z0-9_-]+)";
var optionalUrlPart:String = "(\.[a-z0-9_-]*)";
var urlPattern:RegExp = new RegExp(protocol + urlPart + optionalUrlPart, "ig");
var result:String = input.replace(urlPattern, "<a href='$1$2$3'><u>$1$2$3</u></a>");
Mithilfe der
RegExp()
-Konstruktorfunktion wird ein regulärer Ausdruck (
urlPattern
) aus mehreren Bestandteilen gebildet. Diese Bestandteile sind alle Strings, mit denen Teile des regulären Ausdrucks definiert werden.
Der erste Teil des regulären Ausdrucks, der durch den
protocol
-String definiert wird, legt ein URL-Protokoll fest:
http://
oder
ftp://
. Mit den Klammern wird eine nicht zwischengespeicherte Gruppe festgelegt, die durch das
?
-Symbol angegeben wird. Dies bedeutet, dass die Klammern nur zum Definieren einer Gruppe für das
|
-Auswahlmuster verwendet werden. Die Gruppe entspricht keinem der Rückverweiscodes (
$1
,
$2
,
$3
) im Ersetzungsstring der
replace()
-Methode.
Die anderen Bestandteile des regulären Ausdrucks verwenden jeweils zwischengespeicherte Gruppen (angegeben durch Klammern im Muster), die dann in den Rückverweiscodes (
$1
,
$2
,
$3
) im Ersetzungsstring der
replace()
-Methode verwendet werden.
Der Teil des Musters, der über den
urlPart
-String definiert wird, entspricht
mindestens
einem der folgenden Zeichen:
a-z
,
0-9
,
_
oder
-
. Mit dem
+
-Quantifizierer wird angegeben, dass mindestens eines dieser Zeichen übereinstimmen muss. Mit
\.
wird ein erforderlicher Punkt (
.
) angegeben. Der restliche Teil entspricht einem anderen String mit mindestens einem der folgenden Zeichen:
a-z
,
0-9
,
_
oder
-
.
Der Teil des Musters, der über den
optionalUrlPart
-String definiert wird, entspricht
keinem, einem oder mehreren
der folgenden Zeichen: einem Punkt (
.
), gefolgt von einer beliebigen Anzahl alphanumerischer Zeichen (einschließlich
_
und
-
). Mit dem
*
-Quantifizierer wird angegeben, dass nach Übereinstimmungen mit keinem, einem oder mehreren dieser Zeichen gesucht wird.
Beim Aufrufen der
replace()
-Methode wird der reguläre Ausdruck verwendet und der HTML-Ersetzungsstring über Rückverweise zusammengesetzt.
Mit der
urlToATag()
-Methode wird dann die
emailToATag()
-Methode aufgerufen, mit der auf ähnliche Weise E-Mail-Muster durch
<a>
-Tags für Hyperlinkstrings ersetzt werden. Die regulären Ausdrücke für die Entsprechung mit HTTP-, FTP- und E-Mail-URLs in dieser Beispieldatei sind relativ einfach gehalten. Es sind sehr viel kompliziertere reguläre Ausdrücke für die korrekte Suche nach diesen URLs erforderlich.