in js/src/isValidUrl.js [24:64]
export default function(url, unicodeDomains, requireProtocol) {
if (unicodeDomains == null) {
unicodeDomains = true;
}
if (requireProtocol == null) {
requireProtocol = true;
}
if (!url) {
return false;
}
const urlParts = url.match(validateUrlUnencoded);
if (!urlParts || urlParts[0] !== url) {
return false;
}
let scheme = urlParts[1],
authority = urlParts[2],
path = urlParts[3],
query = urlParts[4],
fragment = urlParts[5];
if (
!(
(!requireProtocol || (isValidMatch(scheme, validateUrlScheme) && scheme.match(/^https?$/i))) &&
isValidMatch(path, validateUrlPath) &&
isValidMatch(query, validateUrlQuery, true) &&
isValidMatch(fragment, validateUrlFragment, true)
)
) {
return false;
}
return (
(unicodeDomains && isValidMatch(authority, validateUrlUnicodeAuthority)) ||
(!unicodeDomains && isValidMatch(authority, validateUrlAuthority))
);
}