Added parseURLs().

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4484 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2006-12-14 00:27:57 +00:00
parent 7b41dbf8ba
commit 8b73d881f3
+29
View File
@@ -145,6 +145,31 @@ public class StringUtil
}
}
/**
* Locate URLs in a string, return an array in which even elements
* are plain text, odd elements are urls (as Strings). Any even element
* may be an empty string.
*/
public static function parseURLs (s :String) :Array
{
var array :Array = [];
while (true) {
var result :Object = URL_REGEXP.exec(s);
if (result == null) {
break;
}
var index :int = int(result.index);
var url :String = String(result[0]);
array.push(s.substring(0, index), url);
s = s.substring(index + url.length);
}
// just the string is left
array.push(s);
return array;
}
/**
* Generates a string from the supplied bytes that is the hex encoded
* representation of those byts. Returns the empty String for a
@@ -188,5 +213,9 @@ public class StringUtil
/** Hexidecimal digits. */
protected static const HEX :Array = [ "0", "1", "2", "3", "4",
"5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" ];
/** A regular expression that finds URLs. */
protected static const URL_REGEXP :RegExp =
new RegExp("(http|https|ftp)://\\S+");
}
}