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";
...