From ac82fa1bd68b36cc6240221ac7d4cf296db79077 Mon Sep 17 00:00:00 2001 From: stefan Date: Mon, 3 Jun 2019 19:38:23 +0200 Subject: [PATCH] Added URL handling in search box --- assets/js/search.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/assets/js/search.js b/assets/js/search.js index 14bc979..9dcdee7 100755 --- a/assets/js/search.js +++ b/assets/js/search.js @@ -110,11 +110,31 @@ function search(text) { break; } } + } else if (validURL(text)) { + if (containsProtocol(text)) + window.location = text; + else + window.location = "https://" + text; } else { window.location = "https://www.google.com/search?q=" + text; } } +// Source: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url +function validURL(str) { + var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name + '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path + '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string + '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator + return !!pattern.test(str); +} + +function containsProtocol(str) { + var pattern = new RegExp('^(https?:\\/\\/){1}.*', 'i'); + return !!pattern.test(str); +} String.prototype.replaceAll = function(search, replacement) { var target = this;