export default function()

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))
  );
}