diff --git a/src/router/Route.es6.js b/src/router/Route.es6.js
index <HASH>..<HASH> 100644
--- a/src/router/Route.es6.js
+++ b/src/router/Route.es6.js
@@ -90,29 +90,17 @@ export default class Route {
 
 
 function getHashString(url) {
-	const hashPosition = url.indexOf('#');
-
-	// Strip out anything before the # including the #.
-	if (hashPosition >= 0) {
-		return url.substring(hashPosition + 1);
+	const match = url.match(/#([^?]*)/);
+	if (match) {
+		return match[1];
 	}
-
 	return '';
 }
 
 function getQueryString(url) {
-	// Get the query param position and strip it from the url for parsing.
-	const queryPosition = url.indexOf('?');
-	let hashPosition = url.indexOf('#');
-
-	// Strip out query string.
-	if (queryPosition >= 0) {
-		if (hashPosition === -1) {
-			hashPosition = url.length;
-		}
-
-		return url.substring(queryPosition + 1, hashPosition);
+	const match = url.match(/\?([^#]*)/);
+	if (match) {
+		return match[1];
 	}
-
 	return '';
 }
Ng/extract query params from hash (#<I>)

* Look for query params in entire url not just before hash



* Better matching with regexes



* Missing return