Regex: Fertige URLS aus Javascript

Jaskur

Mitglied
Hallo,

ich bin auf der Suche nach einem Regex um komplette URLs aus Javascript Code zu extrahieren.
Mit komplett meine ich alles was mit http/https anfängt.

Beispielsweise möchte ich aus diesem Script hier

Code:
<script type="text/javascript">
		var flashvars = {
			importxmlpath : "/_content/de-de/frontpage.xml",
			mediahostpath : "http://eu.media.blizzard.com/blizzard/_flash/"
		};
		var params = {
			bgcolor : "#010d16",
			quality : "autohigh",		
			wmode : "transparent",
			base : "/_flash/",
			allowScriptAccess : "always"
		};
		swfobject.embedSWF("http://eu.media.blizzard.com/blizzard/_flash/header.swf", "flashHeader", "100%", "570", "9.0.0", false, flashvars, params, {});
	</script>

Die URLs extrahieren.
http://eu.media.blizzard.com/blizzard/_flash/header.swf
http://eu.media.blizzard.com/blizzard/_flash/

Es ist mir vollkommen egal ob die extrahierten urls auch wirklich existieren, da ich dies an anderer Stelle überprüfe. Es soll nur sichergestellt sein dass alle kompletten URls extrahiert werden.
 
Also Google beantwortet das.
Die ersten drei Treffer:

- Link 1 empfiehlt [c]^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$[/c] oder
Code:
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?

- Link 2 empfiehlt
Code:
(?:https?://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))*)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*))?)?)

- Link 3 empfiehlt
Code:
((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)
 
Ich habe mir inzwischen meinen eigenen geschrieben und mir die Tatsache zu Nutze gemacht das Strings und somit auch Urls in Javascript immer mit einem Hochkommer beginnen und enden.
 
Das ist natürlich clever.

Die obigen RegExen haben aber z.T. den Vorteil, dass sie Dir gleich die entsprechenden Parts rausparsen (Host, Port, Path, File, Arguments, etc.).
 

Zurück
Oben