Check if a URL is relative
npm install is-relative-url
import isRelativeUrl from 'is-relative-url';
isRelativeUrl('foo/bar');
//=> true
isRelativeUrl('https://sindresorhus.com/foo/bar');
//=> false
isRelativeUrl('//sindresorhus.com');
//=> true
Type: string
The URL to check.
Type: object
Type: boolean
Default: true
Allow protocol-relative URLs (e.g., //example.com
) to be considered relative.
Setting this to false
will treat protocol-relative URLs as absolute, which can be useful for security purposes when you want to ensure a URL won't redirect to an external domain.
Note
Protocol-relative URLs are technically relative according to RFC 3986, as they require the current page's protocol to resolve into absolute URLs. However, they can still navigate to external domains, which may be a security concern in certain contexts (e.g., preventing open redirects).
See is-absolute-url for the inverse.