URLPattern: test() method
The test()
method of the URLPattern
interface takes a URL or object of URL parts, and returns a boolean indicating if the given input matches the current pattern.
Syntax
test(input)
test(input, baseURL)
Parameters
-
input
-
The URL or URL parts to match against. This can either be a string, or an object providing the individual URL parts. The object members can be any of protocol
, username
, password
, hostname
, port
, pathname
, search
, hash
, or baseURL
. Omitted parts in the object will be treated as empty strings. If the input cannot be parsed, or a relative URL without a base is provided, the method will return null
.
baseURL
Optional
-
A string representing the base URL to use in cases where input
is a relative URL. If not specified, it defaults to undefined
. If this parameter cannot be parsed, the method will return false
.
Return value
Examples
This example shows how to use the test()
method to match a URL against a pattern. The example prints the result of the test()
calls to the console.
const pattern = new URLPattern("http{s}?://*.example.com/books/:id");
console.log(pattern.test("https://store.example.com/books/123"));
console.log(pattern.test("https://example.com/books/123"));
console.log(pattern.test("/books/123", "http://store.example.com"));
console.log(pattern.test("/books/123", "data:text/plain,hello world!"));
console.log(pattern.test("/books/123"));
console.log(
pattern.test({
pathname: "/books/123",
baseURL: "http://store.example.com",
}),
);
console.log(
pattern.test({
protocol: "https",
hostname: "store.example.com",
pathname: "/books/123",
}),
);
console.log(
pattern.test({
protocol: "file",
hostname: "store.example.com",
pathname: "/books/123",
}),
);
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
test |
95 |
95 |
No |
No |
81 |
No |
95 |
95 |
No |
67 |
No |
17.0 |
See also
- A polyfill of
URLPattern
is available on GitHub