function recdecode(url) { url+=""; var original_string = url; if(url.toLowerCase().includes("https")) { url = decodeURIComponent(url); if(url === original_string) return url; else return recdecode(url) } else { return url; } } //Test function recdecode() // url data let uri = "https://w3schools.com/mytest.asp?name=stale&car=saab"; /// Test unencoded data let uri_enc = uri; console.log("Unencoded Link test output" + recdecode(uri_enc)); //test multiple encodings console.log("URI: "+uri); uri_enc = encodeURIComponent(uri); console.log("encURI: "+uri_enc); uri_enc = encodeURIComponent(uri_enc); console.log("encURI: "+uri_enc); uri_enc = encodeURIComponent(uri_enc); console.log("encURI: "+uri_enc); console.log("Multiple encodings output: " + recdecode(uri_enc)); // integer 0 test uri_enc = 0; console.log("Integer 0 test output: " + recdecode(uri_enc)); // null data test uri_enc = null; console.log("Null 0 test output: " + recdecode(uri_enc)); // undefined data test uri_enc = undefined; console.log("Undefined test output: " + recdecode(uri_enc)); // Object data test uri_enc = {"test":1,"sec":"test"}; console.log("Object test output: " + recdecode(uri_enc));