The url can be a RegExp
object, or any object that has the method test
.
To match query parameters, you can use the following:
var somelinkPattern = /^\/somelink(?:\?(.*))?$/;
$httpBackend.when('GET', somelinkPattern).respond(function(method, url, data) {
var query = somelinkPattern.exec(url)[1];
// url = "/somelink?abc=123" -> query = "abc=123"
});
To create a pattern from a string url, with optional query-string, you could use this:
var targetUrl = "/somelink";
var pattern = new RegExp(
"^" +
targetUrl.replace(/[-[\]{}()*+?.\\^$|]/g, "\\$&") + /* escape special chars */
"(?:\\?.*)?$");
$httpBackend.when('GET', pattern).respond(function(method, url, data) {
var queryMatch = /^[^#]*\?([^#]*)/.exec(url);
var query = queryMatch ? queryMatch[1] : "";
// url = "/somelink?abc=123" -> query = "abc=123"
});