How To Check if a JavaScript string is a URL

This is to check whether a string is a URL

by jsowl owl

HTML

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="utf-8">JavaScript
    <title>How To Get the last item in an array</title>
  </head>

  <body>
    <button type="button" onclick="usingURLConstructor()">usingURLConstructor</button>
    <button type="button" onclick="usingCheckProtocol()">usingRegexCheckProtocol</button>
    <button type="button" onclick="usingRegex()">usingRegex</button>
    <button type="button" onclick="usingInputElement()">usingInputElement</button>
    <button type="button" onclick="usingAnchorTag()">usingAnchorTag</button>

       
  </body>

</html>

JavaScript

function usingURLConstructor(){

	const isValidUrl = string => {
      try { 
      	return Boolean(new URL(string)); 
      }
      catch(e){ 
      	return false; 
      }
  }
	
  var url = "invalidURL";
  console.log("1.URL Constructor:  "+isValidUrl(url));
  var url = "htt//jsowl";
  console.log("2.URL Constructor:  "+isValidUrl(url));
  var url = "www.jsowl.com";
  console.log("3.URL Constructor:  "+isValidUrl(url));
  var url = "tcp://www.jsowl.com";
  console.log("4.URL Constructor:  "+isValidUrl(url));
  var url = "https://www.jsowl.com/remove-an-item-from-an-array-in-javascript/";
  console.log("5.URL Constructor:  "+isValidUrl(url));
	console.log("*******************");
}

function usingCheckProtocol(){
	const isValidUrl = string => {
  		let url;
      try { 
      	url =new URL(string); 
      }
      catch(e){ 
      	return false; 
      }
      return url.protocol === "http:" || url.protocol === "https:";
  }
  
  var url = "invalidURL";
  console.log("1.URL Protocol check:  "+isValidUrl(url));
  var url = "htt//jsowl";
  console.log("2.URL Protocol check:  "+isValidUrl(url));
  var url = "www.jsowl.com";
  console.log("3.URL Protocol check:  "+isValidUrl(url));
  var url = "tcp://www.jsowl.com";
  console.log("4.URL Protocol check:  "+isValidUrl(url));
  var url = "https://www.jsowl.com/remove-an-item-from-an-array-in-javascript/";
  console.log("5.URL Protocol check:  "+isValidUrl(url));
  console.log("*******************");
}

function usingRegex(){

	const isUrl = string => {
  	var urlPattern = new RegExp('^(https?:\\/\\/)?'+ // validate protocol
    '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // validate domain name
    '((\\d{1,3}\\.){3}\\d{1,3}))'+ // validate OR ip (v4) address
    '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // validate port and path
    '(\\?[;&a-z\\d%_.~+=-]*)?'+ // validate query string
    '(\\#[-a-z\\d_]*)?$','i'); // validate fragment locator
    
  	return !!urlPattern.test(string);
  }

  var url = "invalidURL";
 ...